@babylonjs/core 8.11.0 → 8.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cameras/arcRotateCamera.js +8 -0
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/targetCamera.js +2 -0
- package/Cameras/targetCamera.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +4 -0
- package/Collisions/gpuPicker.js +6 -0
- package/Collisions/gpuPicker.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/constants.d.ts +4 -0
- package/Engines/constants.js +4 -0
- package/Engines/constants.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.d.ts +1 -0
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +2 -0
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.d.ts +6 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js +29 -0
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +6 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +36 -9
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js +1 -0
- package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.js +1 -0
- package/FrameGraph/Node/Blocks/inputBlock.js.map +1 -1
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +2 -0
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +2 -0
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +23 -0
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +126 -21
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +5 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +4 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.d.ts +2 -4
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js +4 -17
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js.map +1 -1
- package/FrameGraph/frameGraph.js +1 -1
- package/FrameGraph/frameGraph.js.map +1 -1
- package/FrameGraph/frameGraphContext.d.ts +30 -0
- package/FrameGraph/frameGraphContext.js +47 -0
- package/FrameGraph/frameGraphContext.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +1 -4
- package/FrameGraph/frameGraphRenderContext.js +2 -5
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +0 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +0 -12
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +4 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/currentScreenBlock.d.ts +2 -3
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/fogBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Dual/fogBlock.js +4 -1
- package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js +2 -2
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js +3 -4
- package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.d.ts +2 -3
- package/Materials/Node/Blocks/Dual/textureBlock.js +2 -2
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.js +4 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +2 -2
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +2 -2
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +1 -2
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +2 -2
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.d.ts +3 -3
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js +6 -3
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +1 -2
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js +2 -4
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.d.ts +1 -2
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.d.ts +2 -3
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +5 -2
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +1 -2
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +2 -2
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +1 -2
- package/Materials/Node/Blocks/PBR/refractionBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.d.ts +2 -3
- package/Materials/Node/Blocks/PBR/sheenBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.d.ts +2 -3
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Particle/particleTextureBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js +1 -1
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/bonesBlock.d.ts +2 -2
- package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
- package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.d.ts +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.d.ts +1 -2
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +1 -1
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.d.ts +2 -2
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +8 -2
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.d.ts +3 -3
- package/Materials/Node/Blocks/transformBlock.js +4 -5
- package/Materials/Node/Blocks/transformBlock.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.d.ts +1 -3
- package/Materials/Node/Blocks/triPlanarBlock.js +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +1 -1
- package/Materials/Node/nodeMaterial.js +28 -42
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.d.ts +8 -12
- package/Materials/Node/nodeMaterialBlock.js +10 -12
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +3 -1
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +7 -3
- package/Materials/Node/nodeMaterialBuildStateSharedData.js +17 -6
- package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +2 -0
- package/Materials/PBR/pbrBaseMaterial.js +11 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/Loaders/exrTextureLoader.d.ts +10 -0
- package/Materials/Textures/Loaders/exrTextureLoader.js +28 -1
- package/Materials/Textures/Loaders/exrTextureLoader.js.map +1 -1
- package/Materials/materialHelper.functions.js +1 -1
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.js +7 -0
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/standardMaterial.d.ts +2 -0
- package/Materials/standardMaterial.js +11 -0
- package/Materials/standardMaterial.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.d.ts +7 -0
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js +11 -5
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.d.ts +6 -0
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js +42 -4
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.js +8 -0
- package/Meshes/Node/Blocks/geometryOptimizeBlock.js.map +1 -1
- package/Misc/environmentTextureTools.js +1 -1
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/minMaxReducer.d.ts +8 -6
- package/Misc/minMaxReducer.js +57 -90
- package/Misc/minMaxReducer.js.map +1 -1
- package/Misc/thinMinMaxReducer.d.ts +47 -0
- package/Misc/thinMinMaxReducer.js +148 -0
- package/Misc/thinMinMaxReducer.js.map +1 -0
- package/Particles/EmitterTypes/customParticleEmitter.d.ts +5 -0
- package/Particles/EmitterTypes/customParticleEmitter.js +9 -1
- package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
- package/Particles/IParticleSystem.d.ts +4 -0
- package/Particles/IParticleSystem.js.map +1 -1
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.d.ts +75 -0
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.js +179 -0
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/boxShapeBlock.d.ts +47 -0
- package/Particles/Node/Blocks/Emitters/boxShapeBlock.js +107 -0
- package/Particles/Node/Blocks/Emitters/boxShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/createParticleBlock.d.ts +46 -0
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js +97 -0
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/customShapeBlock.d.ts +39 -0
- package/Particles/Node/Blocks/Emitters/customShapeBlock.js +84 -0
- package/Particles/Node/Blocks/Emitters/customShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.d.ts +48 -0
- package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js +120 -0
- package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/index.d.ts +7 -0
- package/Particles/Node/Blocks/Emitters/index.js +8 -0
- package/Particles/Node/Blocks/Emitters/index.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/pointShapeBlock.d.ts +39 -0
- package/Particles/Node/Blocks/Emitters/pointShapeBlock.js +86 -0
- package/Particles/Node/Blocks/Emitters/pointShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.d.ts +53 -0
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.js +111 -0
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.js.map +1 -0
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.d.ts +43 -0
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js +108 -0
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js.map +1 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportInBlock.d.ts +48 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportInBlock.js +100 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportInBlock.js.map +1 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportOutBlock.d.ts +47 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportOutBlock.js +82 -0
- package/Particles/Node/Blocks/Teleport/particleTeleportOutBlock.js.map +1 -0
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.d.ts +48 -0
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.js +133 -0
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.js.map +1 -0
- package/Particles/Node/Blocks/Triggers/triggerTools.d.ts +9 -0
- package/Particles/Node/Blocks/Triggers/triggerTools.js +16 -0
- package/Particles/Node/Blocks/Triggers/triggerTools.js.map +1 -0
- package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.d.ts +31 -0
- package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js +64 -0
- package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/basicSpriteUpdateBlock.d.ts +31 -0
- package/Particles/Node/Blocks/Update/basicSpriteUpdateBlock.js +63 -0
- package/Particles/Node/Blocks/Update/basicSpriteUpdateBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateAngleBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateAngleBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updateAngleBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateColorBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateColorBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updateColorBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateDirectionBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateDirectionBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updateDirectionBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateFlowMapBlock.d.ts +41 -0
- package/Particles/Node/Blocks/Update/updateFlowMapBlock.js +102 -0
- package/Particles/Node/Blocks/Update/updateFlowMapBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updatePositionBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updatePositionBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updatePositionBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateScaleBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateScaleBlock.js +73 -0
- package/Particles/Node/Blocks/Update/updateScaleBlock.js.map +1 -0
- package/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock.d.ts +35 -0
- package/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock.js +74 -0
- package/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock.js.map +1 -0
- package/Particles/Node/Blocks/index.d.ts +27 -0
- package/Particles/Node/Blocks/index.js +29 -0
- package/Particles/Node/Blocks/index.js.map +1 -0
- package/Particles/Node/Blocks/particleConverterBlock.d.ts +85 -0
- package/Particles/Node/Blocks/particleConverterBlock.js +267 -0
- package/Particles/Node/Blocks/particleConverterBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleDebugBlock.d.ts +37 -0
- package/Particles/Node/Blocks/particleDebugBlock.js +109 -0
- package/Particles/Node/Blocks/particleDebugBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleElbowBlock.d.ts +27 -0
- package/Particles/Node/Blocks/particleElbowBlock.js +47 -0
- package/Particles/Node/Blocks/particleElbowBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleGradientBlock.d.ts +28 -0
- package/Particles/Node/Blocks/particleGradientBlock.js +118 -0
- package/Particles/Node/Blocks/particleGradientBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleGradientValueBlock.d.ts +32 -0
- package/Particles/Node/Blocks/particleGradientValueBlock.js +79 -0
- package/Particles/Node/Blocks/particleGradientValueBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleInputBlock.d.ts +87 -0
- package/Particles/Node/Blocks/particleInputBlock.js +279 -0
- package/Particles/Node/Blocks/particleInputBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleLerpBlock.d.ts +34 -0
- package/Particles/Node/Blocks/particleLerpBlock.js +92 -0
- package/Particles/Node/Blocks/particleLerpBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleMathBlock.d.ts +64 -0
- package/Particles/Node/Blocks/particleMathBlock.js +321 -0
- package/Particles/Node/Blocks/particleMathBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleRandomBlock.d.ts +52 -0
- package/Particles/Node/Blocks/particleRandomBlock.js +161 -0
- package/Particles/Node/Blocks/particleRandomBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleSourceTextureBlock.d.ts +65 -0
- package/Particles/Node/Blocks/particleSourceTextureBlock.js +173 -0
- package/Particles/Node/Blocks/particleSourceTextureBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleTrigonometryBlock.d.ts +80 -0
- package/Particles/Node/Blocks/particleTrigonometryBlock.js +272 -0
- package/Particles/Node/Blocks/particleTrigonometryBlock.js.map +1 -0
- package/Particles/Node/Blocks/randomRangeBlock.d.ts +45 -0
- package/Particles/Node/Blocks/randomRangeBlock.js +151 -0
- package/Particles/Node/Blocks/randomRangeBlock.js.map +1 -0
- package/Particles/Node/Blocks/systemBlock.d.ts +71 -0
- package/Particles/Node/Blocks/systemBlock.js +193 -0
- package/Particles/Node/Blocks/systemBlock.js.map +1 -0
- package/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.d.ts +39 -0
- package/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.js +41 -0
- package/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.js.map +1 -0
- package/Particles/Node/Enums/nodeParticleContextualSources.d.ts +31 -0
- package/Particles/Node/Enums/nodeParticleContextualSources.js +34 -0
- package/Particles/Node/Enums/nodeParticleContextualSources.js.map +1 -0
- package/Particles/Node/Enums/nodeParticleSystemSources.d.ts +13 -0
- package/Particles/Node/Enums/nodeParticleSystemSources.js +15 -0
- package/Particles/Node/Enums/nodeParticleSystemSources.js.map +1 -0
- package/Particles/Node/index.d.ts +8 -0
- package/Particles/Node/index.js +10 -0
- package/Particles/Node/index.js.map +1 -0
- package/Particles/Node/nodeParticleBlock.d.ts +154 -0
- package/Particles/Node/nodeParticleBlock.js +355 -0
- package/Particles/Node/nodeParticleBlock.js.map +1 -0
- package/Particles/Node/nodeParticleBlockConnectionPoint.d.ts +188 -0
- package/Particles/Node/nodeParticleBlockConnectionPoint.js +337 -0
- package/Particles/Node/nodeParticleBlockConnectionPoint.js.map +1 -0
- package/Particles/Node/nodeParticleBuildState.d.ts +89 -0
- package/Particles/Node/nodeParticleBuildState.js +170 -0
- package/Particles/Node/nodeParticleBuildState.js.map +1 -0
- package/Particles/Node/nodeParticleSystemSet.d.ts +120 -0
- package/Particles/Node/nodeParticleSystemSet.js +382 -0
- package/Particles/Node/nodeParticleSystemSet.js.map +1 -0
- package/Particles/Queue/executionQueue.d.ts +2 -0
- package/Particles/Queue/executionQueue.js +10 -0
- package/Particles/Queue/executionQueue.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +2 -1
- package/Particles/baseParticleSystem.js +1 -0
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/flowMap.d.ts +7 -0
- package/Particles/flowMap.js +32 -0
- package/Particles/flowMap.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +4 -0
- package/Particles/gpuParticleSystem.js +4 -0
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/index.d.ts +1 -0
- package/Particles/index.js +1 -0
- package/Particles/index.js.map +1 -1
- package/Particles/particleSystem.d.ts +12 -0
- package/Particles/particleSystem.js +22 -1
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +32 -11
- package/Particles/thinParticleSystem.js +62 -36
- package/Particles/thinParticleSystem.js.map +1 -1
- package/PostProcesses/postProcessManager.d.ts +2 -1
- package/PostProcesses/postProcessManager.js +3 -2
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -0
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +5 -2
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +3 -0
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +3 -0
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -0
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +3 -0
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js +3 -0
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js +3 -0
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/Shaders/default.fragment.js +3 -0
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.js +13 -5
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js +5 -2
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +3 -0
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +3 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +3 -0
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassVertex.js +3 -0
- package/ShadersWGSL/ShadersInclude/prePassVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js +3 -0
- package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +3 -0
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/minmaxRedux.fragment.js +14 -6
- package/ShadersWGSL/minmaxRedux.fragment.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +5 -0
- package/scene.js +8 -0
- package/scene.js.map +1 -1
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { __decorate } from "../../../tslib.es6.js";
|
|
2
|
+
import { RegisterClass } from "../../../Misc/typeStore.js";
|
|
3
|
+
import { Vector2, Vector3 } from "../../../Maths/math.vector.js";
|
|
4
|
+
import { editableInPropertyPage } from "../../../Decorators/nodeDecorator.js";
|
|
5
|
+
import { NodeParticleBlock } from "../nodeParticleBlock.js";
|
|
6
|
+
import { NodeParticleBlockConnectionPointTypes } from "../Enums/nodeParticleBlockConnectionPointTypes.js";
|
|
7
|
+
import { Color4 } from "../../../Maths/math.color.js";
|
|
8
|
+
/**
|
|
9
|
+
* Operations supported by the Trigonometry block
|
|
10
|
+
*/
|
|
11
|
+
export var ParticleTrigonometryBlockOperations;
|
|
12
|
+
(function (ParticleTrigonometryBlockOperations) {
|
|
13
|
+
/** Cos */
|
|
14
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Cos"] = 0] = "Cos";
|
|
15
|
+
/** Sin */
|
|
16
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Sin"] = 1] = "Sin";
|
|
17
|
+
/** Abs */
|
|
18
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Abs"] = 2] = "Abs";
|
|
19
|
+
/** Exp */
|
|
20
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Exp"] = 3] = "Exp";
|
|
21
|
+
/** Exp2 */
|
|
22
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Exp2"] = 4] = "Exp2";
|
|
23
|
+
/** Round */
|
|
24
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Round"] = 5] = "Round";
|
|
25
|
+
/** Floor */
|
|
26
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Floor"] = 6] = "Floor";
|
|
27
|
+
/** Ceiling */
|
|
28
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Ceiling"] = 7] = "Ceiling";
|
|
29
|
+
/** Square root */
|
|
30
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Sqrt"] = 8] = "Sqrt";
|
|
31
|
+
/** Log */
|
|
32
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Log"] = 9] = "Log";
|
|
33
|
+
/** Tangent */
|
|
34
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Tan"] = 10] = "Tan";
|
|
35
|
+
/** Arc tangent */
|
|
36
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["ArcTan"] = 11] = "ArcTan";
|
|
37
|
+
/** Arc cosinus */
|
|
38
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["ArcCos"] = 12] = "ArcCos";
|
|
39
|
+
/** Arc sinus */
|
|
40
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["ArcSin"] = 13] = "ArcSin";
|
|
41
|
+
/** Sign */
|
|
42
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Sign"] = 14] = "Sign";
|
|
43
|
+
/** Negate */
|
|
44
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Negate"] = 15] = "Negate";
|
|
45
|
+
/** OneMinus */
|
|
46
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["OneMinus"] = 16] = "OneMinus";
|
|
47
|
+
/** Reciprocal */
|
|
48
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Reciprocal"] = 17] = "Reciprocal";
|
|
49
|
+
/** ToDegrees */
|
|
50
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["ToDegrees"] = 18] = "ToDegrees";
|
|
51
|
+
/** ToRadians */
|
|
52
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["ToRadians"] = 19] = "ToRadians";
|
|
53
|
+
/** Fract */
|
|
54
|
+
ParticleTrigonometryBlockOperations[ParticleTrigonometryBlockOperations["Fract"] = 20] = "Fract";
|
|
55
|
+
})(ParticleTrigonometryBlockOperations || (ParticleTrigonometryBlockOperations = {}));
|
|
56
|
+
/**
|
|
57
|
+
* Block used to apply trigonometry operation to floats
|
|
58
|
+
*/
|
|
59
|
+
export class ParticleTrigonometryBlock extends NodeParticleBlock {
|
|
60
|
+
/**
|
|
61
|
+
* Creates a new GeometryTrigonometryBlock
|
|
62
|
+
* @param name defines the block name
|
|
63
|
+
*/
|
|
64
|
+
constructor(name) {
|
|
65
|
+
super(name);
|
|
66
|
+
/**
|
|
67
|
+
* Gets or sets the operation applied by the block
|
|
68
|
+
*/
|
|
69
|
+
this.operation = ParticleTrigonometryBlockOperations.Cos;
|
|
70
|
+
this.registerInput("input", NodeParticleBlockConnectionPointTypes.AutoDetect);
|
|
71
|
+
this.registerOutput("output", NodeParticleBlockConnectionPointTypes.BasedOnInput);
|
|
72
|
+
this._outputs[0]._typeConnectionSource = this._inputs[0];
|
|
73
|
+
this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeParticleBlockConnectionPointTypes.Float |
|
|
74
|
+
NodeParticleBlockConnectionPointTypes.Int |
|
|
75
|
+
NodeParticleBlockConnectionPointTypes.Vector2 |
|
|
76
|
+
NodeParticleBlockConnectionPointTypes.Vector3 |
|
|
77
|
+
NodeParticleBlockConnectionPointTypes.Color4);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Gets the current class name
|
|
81
|
+
* @returns the class name
|
|
82
|
+
*/
|
|
83
|
+
getClassName() {
|
|
84
|
+
return "ParticleTrigonometryBlock";
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Gets the input component
|
|
88
|
+
*/
|
|
89
|
+
get input() {
|
|
90
|
+
return this._inputs[0];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Gets the output component
|
|
94
|
+
*/
|
|
95
|
+
get output() {
|
|
96
|
+
return this._outputs[0];
|
|
97
|
+
}
|
|
98
|
+
_build(state) {
|
|
99
|
+
super._build(state);
|
|
100
|
+
let func = null;
|
|
101
|
+
switch (this.operation) {
|
|
102
|
+
case ParticleTrigonometryBlockOperations.Cos: {
|
|
103
|
+
func = (value) => Math.cos(value);
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
case ParticleTrigonometryBlockOperations.Sin: {
|
|
107
|
+
func = (value) => Math.sin(value);
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
case ParticleTrigonometryBlockOperations.Abs: {
|
|
111
|
+
func = (value) => Math.abs(value);
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
case ParticleTrigonometryBlockOperations.Exp: {
|
|
115
|
+
func = (value) => Math.exp(value);
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
case ParticleTrigonometryBlockOperations.Exp2: {
|
|
119
|
+
func = (value) => Math.pow(2, value);
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case ParticleTrigonometryBlockOperations.Round: {
|
|
123
|
+
func = (value) => Math.round(value);
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
case ParticleTrigonometryBlockOperations.Floor: {
|
|
127
|
+
func = (value) => Math.floor(value);
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
case ParticleTrigonometryBlockOperations.Ceiling: {
|
|
131
|
+
func = (value) => Math.ceil(value);
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
case ParticleTrigonometryBlockOperations.Sqrt: {
|
|
135
|
+
func = (value) => Math.sqrt(value);
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
case ParticleTrigonometryBlockOperations.Log: {
|
|
139
|
+
func = (value) => Math.log(value);
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
case ParticleTrigonometryBlockOperations.Tan: {
|
|
143
|
+
func = (value) => Math.tan(value);
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
case ParticleTrigonometryBlockOperations.ArcTan: {
|
|
147
|
+
func = (value) => Math.atan(value);
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
case ParticleTrigonometryBlockOperations.ArcCos: {
|
|
151
|
+
func = (value) => Math.acos(value);
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
case ParticleTrigonometryBlockOperations.ArcSin: {
|
|
155
|
+
func = (value) => Math.asin(value);
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
case ParticleTrigonometryBlockOperations.Sign: {
|
|
159
|
+
func = (value) => Math.sign(value);
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
case ParticleTrigonometryBlockOperations.Negate: {
|
|
163
|
+
func = (value) => -value;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
case ParticleTrigonometryBlockOperations.OneMinus: {
|
|
167
|
+
func = (value) => 1 - value;
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
case ParticleTrigonometryBlockOperations.Reciprocal: {
|
|
171
|
+
func = (value) => 1 / value;
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
case ParticleTrigonometryBlockOperations.ToRadians: {
|
|
175
|
+
func = (value) => (value * Math.PI) / 180;
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
case ParticleTrigonometryBlockOperations.ToDegrees: {
|
|
179
|
+
func = (value) => (value * 180) / Math.PI;
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case ParticleTrigonometryBlockOperations.Fract: {
|
|
183
|
+
func = (value) => {
|
|
184
|
+
if (value >= 0) {
|
|
185
|
+
return value - Math.floor(value);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
return value - Math.ceil(value);
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (!func) {
|
|
195
|
+
this.output._storedFunction = null;
|
|
196
|
+
this.output._storedValue = null;
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
switch (this.input.type) {
|
|
200
|
+
case NodeParticleBlockConnectionPointTypes.Int:
|
|
201
|
+
case NodeParticleBlockConnectionPointTypes.Float: {
|
|
202
|
+
this.output._storedFunction = (state) => {
|
|
203
|
+
const source = this.input.getConnectedValue(state);
|
|
204
|
+
return func(source);
|
|
205
|
+
};
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
case NodeParticleBlockConnectionPointTypes.Vector2: {
|
|
209
|
+
this.output._storedFunction = (state) => {
|
|
210
|
+
const source = this.input.getConnectedValue(state);
|
|
211
|
+
return new Vector2(func(source.x), func(source.y));
|
|
212
|
+
};
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
case NodeParticleBlockConnectionPointTypes.Vector3: {
|
|
216
|
+
this.output._storedFunction = (state) => {
|
|
217
|
+
const source = this.input.getConnectedValue(state);
|
|
218
|
+
return new Vector3(func(source.x), func(source.y), func(source.z));
|
|
219
|
+
};
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
case NodeParticleBlockConnectionPointTypes.Color4: {
|
|
223
|
+
this.output._storedFunction = (state) => {
|
|
224
|
+
const source = this.input.getConnectedValue(state);
|
|
225
|
+
return new Color4(func(source.r), func(source.g), func(source.b), func(source.a));
|
|
226
|
+
};
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return this;
|
|
231
|
+
}
|
|
232
|
+
serialize() {
|
|
233
|
+
const serializationObject = super.serialize();
|
|
234
|
+
serializationObject.operation = this.operation;
|
|
235
|
+
return serializationObject;
|
|
236
|
+
}
|
|
237
|
+
_deserialize(serializationObject) {
|
|
238
|
+
super._deserialize(serializationObject);
|
|
239
|
+
this.operation = serializationObject.operation;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
__decorate([
|
|
243
|
+
editableInPropertyPage("Operation", 4 /* PropertyTypeForEdition.List */, "ADVANCED", {
|
|
244
|
+
embedded: true,
|
|
245
|
+
notifiers: { rebuild: true },
|
|
246
|
+
options: [
|
|
247
|
+
{ label: "Cos", value: ParticleTrigonometryBlockOperations.Cos },
|
|
248
|
+
{ label: "Sin", value: ParticleTrigonometryBlockOperations.Sin },
|
|
249
|
+
{ label: "Abs", value: ParticleTrigonometryBlockOperations.Abs },
|
|
250
|
+
{ label: "Exp", value: ParticleTrigonometryBlockOperations.Exp },
|
|
251
|
+
{ label: "Exp2", value: ParticleTrigonometryBlockOperations.Exp2 },
|
|
252
|
+
{ label: "Round", value: ParticleTrigonometryBlockOperations.Round },
|
|
253
|
+
{ label: "Floor", value: ParticleTrigonometryBlockOperations.Floor },
|
|
254
|
+
{ label: "Ceiling", value: ParticleTrigonometryBlockOperations.Ceiling },
|
|
255
|
+
{ label: "Sqrt", value: ParticleTrigonometryBlockOperations.Sqrt },
|
|
256
|
+
{ label: "Log", value: ParticleTrigonometryBlockOperations.Log },
|
|
257
|
+
{ label: "Tan", value: ParticleTrigonometryBlockOperations.Tan },
|
|
258
|
+
{ label: "ArcTan", value: ParticleTrigonometryBlockOperations.ArcTan },
|
|
259
|
+
{ label: "ArcCos", value: ParticleTrigonometryBlockOperations.ArcCos },
|
|
260
|
+
{ label: "ArcSin", value: ParticleTrigonometryBlockOperations.ArcSin },
|
|
261
|
+
{ label: "Sign", value: ParticleTrigonometryBlockOperations.Sign },
|
|
262
|
+
{ label: "Negate", value: ParticleTrigonometryBlockOperations.Negate },
|
|
263
|
+
{ label: "OneMinus", value: ParticleTrigonometryBlockOperations.OneMinus },
|
|
264
|
+
{ label: "Reciprocal", value: ParticleTrigonometryBlockOperations.Reciprocal },
|
|
265
|
+
{ label: "ToDegrees", value: ParticleTrigonometryBlockOperations.ToDegrees },
|
|
266
|
+
{ label: "ToRadians", value: ParticleTrigonometryBlockOperations.ToRadians },
|
|
267
|
+
{ label: "Fract", value: ParticleTrigonometryBlockOperations.Fract },
|
|
268
|
+
],
|
|
269
|
+
})
|
|
270
|
+
], ParticleTrigonometryBlock.prototype, "operation", void 0);
|
|
271
|
+
RegisterClass("BABYLON.ParticleTrigonometryBlock", ParticleTrigonometryBlock);
|
|
272
|
+
//# sourceMappingURL=particleTrigonometryBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"particleTrigonometryBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Particles/Node/Blocks/particleTrigonometryBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../../types\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { Vector2, Vector3 } from \"../../../Maths/math.vector\";\r\nimport { PropertyTypeForEdition, editableInPropertyPage } from \"../../../Decorators/nodeDecorator\";\r\nimport { NodeParticleBlock } from \"../nodeParticleBlock\";\r\nimport { NodeParticleBlockConnectionPointTypes } from \"../Enums/nodeParticleBlockConnectionPointTypes\";\r\nimport type { NodeParticleConnectionPoint } from \"../nodeParticleBlockConnectionPoint\";\r\nimport type { NodeParticleBuildState } from \"../nodeParticleBuildState\";\r\nimport { Color4 } from \"core/Maths/math.color\";\r\n\r\n/**\r\n * Operations supported by the Trigonometry block\r\n */\r\nexport enum ParticleTrigonometryBlockOperations {\r\n /** Cos */\r\n Cos,\r\n /** Sin */\r\n Sin,\r\n /** Abs */\r\n Abs,\r\n /** Exp */\r\n Exp,\r\n /** Exp2 */\r\n Exp2,\r\n /** Round */\r\n Round,\r\n /** Floor */\r\n Floor,\r\n /** Ceiling */\r\n Ceiling,\r\n /** Square root */\r\n Sqrt,\r\n /** Log */\r\n Log,\r\n /** Tangent */\r\n Tan,\r\n /** Arc tangent */\r\n ArcTan,\r\n /** Arc cosinus */\r\n ArcCos,\r\n /** Arc sinus */\r\n ArcSin,\r\n /** Sign */\r\n Sign,\r\n /** Negate */\r\n Negate,\r\n /** OneMinus */\r\n OneMinus,\r\n /** Reciprocal */\r\n Reciprocal,\r\n /** ToDegrees */\r\n ToDegrees,\r\n /** ToRadians */\r\n ToRadians,\r\n /** Fract */\r\n Fract,\r\n}\r\n\r\n/**\r\n * Block used to apply trigonometry operation to floats\r\n */\r\nexport class ParticleTrigonometryBlock extends NodeParticleBlock {\r\n /**\r\n * Gets or sets the operation applied by the block\r\n */\r\n @editableInPropertyPage(\"Operation\", PropertyTypeForEdition.List, \"ADVANCED\", {\r\n embedded: true,\r\n notifiers: { rebuild: true },\r\n options: [\r\n { label: \"Cos\", value: ParticleTrigonometryBlockOperations.Cos },\r\n { label: \"Sin\", value: ParticleTrigonometryBlockOperations.Sin },\r\n { label: \"Abs\", value: ParticleTrigonometryBlockOperations.Abs },\r\n { label: \"Exp\", value: ParticleTrigonometryBlockOperations.Exp },\r\n { label: \"Exp2\", value: ParticleTrigonometryBlockOperations.Exp2 },\r\n { label: \"Round\", value: ParticleTrigonometryBlockOperations.Round },\r\n { label: \"Floor\", value: ParticleTrigonometryBlockOperations.Floor },\r\n { label: \"Ceiling\", value: ParticleTrigonometryBlockOperations.Ceiling },\r\n { label: \"Sqrt\", value: ParticleTrigonometryBlockOperations.Sqrt },\r\n { label: \"Log\", value: ParticleTrigonometryBlockOperations.Log },\r\n { label: \"Tan\", value: ParticleTrigonometryBlockOperations.Tan },\r\n { label: \"ArcTan\", value: ParticleTrigonometryBlockOperations.ArcTan },\r\n { label: \"ArcCos\", value: ParticleTrigonometryBlockOperations.ArcCos },\r\n { label: \"ArcSin\", value: ParticleTrigonometryBlockOperations.ArcSin },\r\n { label: \"Sign\", value: ParticleTrigonometryBlockOperations.Sign },\r\n { label: \"Negate\", value: ParticleTrigonometryBlockOperations.Negate },\r\n { label: \"OneMinus\", value: ParticleTrigonometryBlockOperations.OneMinus },\r\n { label: \"Reciprocal\", value: ParticleTrigonometryBlockOperations.Reciprocal },\r\n { label: \"ToDegrees\", value: ParticleTrigonometryBlockOperations.ToDegrees },\r\n { label: \"ToRadians\", value: ParticleTrigonometryBlockOperations.ToRadians },\r\n { label: \"Fract\", value: ParticleTrigonometryBlockOperations.Fract },\r\n ],\r\n })\r\n public operation = ParticleTrigonometryBlockOperations.Cos;\r\n\r\n /**\r\n * Creates a new GeometryTrigonometryBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this.registerInput(\"input\", NodeParticleBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeParticleBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n\r\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(\r\n NodeParticleBlockConnectionPointTypes.Float |\r\n NodeParticleBlockConnectionPointTypes.Int |\r\n NodeParticleBlockConnectionPointTypes.Vector2 |\r\n NodeParticleBlockConnectionPointTypes.Vector3 |\r\n NodeParticleBlockConnectionPointTypes.Color4\r\n );\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"ParticleTrigonometryBlock\";\r\n }\r\n\r\n /**\r\n * Gets the input component\r\n */\r\n public get input(): NodeParticleConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeParticleConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n public override _build(state: NodeParticleBuildState) {\r\n super._build(state);\r\n let func: Nullable<(value: number) => number> = null;\r\n\r\n switch (this.operation) {\r\n case ParticleTrigonometryBlockOperations.Cos: {\r\n func = (value: number) => Math.cos(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Sin: {\r\n func = (value: number) => Math.sin(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Abs: {\r\n func = (value: number) => Math.abs(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Exp: {\r\n func = (value: number) => Math.exp(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Exp2: {\r\n func = (value: number) => Math.pow(2, value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Round: {\r\n func = (value: number) => Math.round(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Floor: {\r\n func = (value: number) => Math.floor(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Ceiling: {\r\n func = (value: number) => Math.ceil(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Sqrt: {\r\n func = (value: number) => Math.sqrt(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Log: {\r\n func = (value: number) => Math.log(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Tan: {\r\n func = (value: number) => Math.tan(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.ArcTan: {\r\n func = (value: number) => Math.atan(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.ArcCos: {\r\n func = (value: number) => Math.acos(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.ArcSin: {\r\n func = (value: number) => Math.asin(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Sign: {\r\n func = (value: number) => Math.sign(value);\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Negate: {\r\n func = (value: number) => -value;\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.OneMinus: {\r\n func = (value: number) => 1 - value;\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Reciprocal: {\r\n func = (value: number) => 1 / value;\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.ToRadians: {\r\n func = (value: number) => (value * Math.PI) / 180;\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.ToDegrees: {\r\n func = (value: number) => (value * 180) / Math.PI;\r\n break;\r\n }\r\n case ParticleTrigonometryBlockOperations.Fract: {\r\n func = (value: number) => {\r\n if (value >= 0) {\r\n return value - Math.floor(value);\r\n } else {\r\n return value - Math.ceil(value);\r\n }\r\n };\r\n break;\r\n }\r\n }\r\n if (!func) {\r\n this.output._storedFunction = null;\r\n this.output._storedValue = null;\r\n return;\r\n }\r\n\r\n switch (this.input.type) {\r\n case NodeParticleBlockConnectionPointTypes.Int:\r\n case NodeParticleBlockConnectionPointTypes.Float: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return func(source);\r\n };\r\n break;\r\n }\r\n case NodeParticleBlockConnectionPointTypes.Vector2: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return new Vector2(func(source.x), func(source.y));\r\n };\r\n break;\r\n }\r\n case NodeParticleBlockConnectionPointTypes.Vector3: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return new Vector3(func(source.x), func(source.y), func(source.z));\r\n };\r\n break;\r\n }\r\n case NodeParticleBlockConnectionPointTypes.Color4: {\r\n this.output._storedFunction = (state) => {\r\n const source = this.input.getConnectedValue(state);\r\n return new Color4(func(source.r), func(source.g), func(source.b), func(source.a));\r\n };\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n\r\n serializationObject.operation = this.operation;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n\r\n this.operation = serializationObject.operation;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ParticleTrigonometryBlock\", ParticleTrigonometryBlock);\r\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NodeParticleBlock } from "../nodeParticleBlock.js";
|
|
2
|
+
import type { NodeParticleConnectionPoint } from "../nodeParticleBlockConnectionPoint.js";
|
|
3
|
+
import { ParticleRandomBlockLocks } from "./particleRandomBlock.js";
|
|
4
|
+
/**
|
|
5
|
+
* Block used to pick a value randomly from a range
|
|
6
|
+
*/
|
|
7
|
+
export declare class RandomRangeBlock extends NodeParticleBlock {
|
|
8
|
+
private _currentLockId;
|
|
9
|
+
/**
|
|
10
|
+
* Gets or sets a value indicating if that block will lock its value for a specific event
|
|
11
|
+
*/
|
|
12
|
+
lockMode: ParticleRandomBlockLocks;
|
|
13
|
+
/**
|
|
14
|
+
* Create a new RandomRangeBlock
|
|
15
|
+
* @param name defines the block name
|
|
16
|
+
*/
|
|
17
|
+
constructor(name: string);
|
|
18
|
+
/**
|
|
19
|
+
* Gets the min input component
|
|
20
|
+
*/
|
|
21
|
+
get min(): NodeParticleConnectionPoint;
|
|
22
|
+
/**
|
|
23
|
+
* Gets the max input component
|
|
24
|
+
*/
|
|
25
|
+
get max(): NodeParticleConnectionPoint;
|
|
26
|
+
/**
|
|
27
|
+
* Gets the output component
|
|
28
|
+
*/
|
|
29
|
+
get output(): NodeParticleConnectionPoint;
|
|
30
|
+
/**
|
|
31
|
+
* Gets the current class name
|
|
32
|
+
* @returns the class name
|
|
33
|
+
*/
|
|
34
|
+
getClassName(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Builds the block
|
|
37
|
+
*/
|
|
38
|
+
_build(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Serializes this block in a JSON representation
|
|
41
|
+
* @returns the serialized block object
|
|
42
|
+
*/
|
|
43
|
+
serialize(): any;
|
|
44
|
+
_deserialize(serializationObject: any): void;
|
|
45
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { __decorate } from "../../../tslib.es6.js";
|
|
2
|
+
import { Vector2, Vector3 } from "../../../Maths/math.vector.js";
|
|
3
|
+
import { RegisterClass } from "../../../Misc/typeStore.js";
|
|
4
|
+
import { NodeParticleBlockConnectionPointTypes } from "../Enums/nodeParticleBlockConnectionPointTypes.js";
|
|
5
|
+
import { NodeParticleBlock } from "../nodeParticleBlock.js";
|
|
6
|
+
import { Color4 } from "../../../Maths/math.color.js";
|
|
7
|
+
import { ParticleRandomBlockLocks } from "./particleRandomBlock.js";
|
|
8
|
+
import { editableInPropertyPage } from "../../../Decorators/nodeDecorator.js";
|
|
9
|
+
/**
|
|
10
|
+
* Block used to pick a value randomly from a range
|
|
11
|
+
*/
|
|
12
|
+
export class RandomRangeBlock extends NodeParticleBlock {
|
|
13
|
+
/**
|
|
14
|
+
* Create a new RandomRangeBlock
|
|
15
|
+
* @param name defines the block name
|
|
16
|
+
*/
|
|
17
|
+
constructor(name) {
|
|
18
|
+
super(name);
|
|
19
|
+
this._currentLockId = -2;
|
|
20
|
+
/**
|
|
21
|
+
* Gets or sets a value indicating if that block will lock its value for a specific event
|
|
22
|
+
*/
|
|
23
|
+
this.lockMode = ParticleRandomBlockLocks.PerParticle;
|
|
24
|
+
this.registerInput("min", NodeParticleBlockConnectionPointTypes.AutoDetect);
|
|
25
|
+
this.registerInput("max", NodeParticleBlockConnectionPointTypes.AutoDetect);
|
|
26
|
+
this.registerOutput("output", NodeParticleBlockConnectionPointTypes.BasedOnInput);
|
|
27
|
+
this.output._typeConnectionSource = this.min;
|
|
28
|
+
this._linkConnectionTypes(0, 1);
|
|
29
|
+
const excludedConnectionPointTypes = [
|
|
30
|
+
NodeParticleBlockConnectionPointTypes.Matrix,
|
|
31
|
+
NodeParticleBlockConnectionPointTypes.Particle,
|
|
32
|
+
NodeParticleBlockConnectionPointTypes.Texture,
|
|
33
|
+
NodeParticleBlockConnectionPointTypes.System,
|
|
34
|
+
NodeParticleBlockConnectionPointTypes.FloatGradient,
|
|
35
|
+
NodeParticleBlockConnectionPointTypes.Color4Gradient,
|
|
36
|
+
NodeParticleBlockConnectionPointTypes.Vector2Gradient,
|
|
37
|
+
NodeParticleBlockConnectionPointTypes.Vector3Gradient,
|
|
38
|
+
];
|
|
39
|
+
this.min.excludedConnectionPointTypes.push(...excludedConnectionPointTypes);
|
|
40
|
+
this.max.excludedConnectionPointTypes.push(...excludedConnectionPointTypes);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Gets the min input component
|
|
44
|
+
*/
|
|
45
|
+
get min() {
|
|
46
|
+
return this._inputs[0];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Gets the max input component
|
|
50
|
+
*/
|
|
51
|
+
get max() {
|
|
52
|
+
return this._inputs[1];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Gets the output component
|
|
56
|
+
*/
|
|
57
|
+
get output() {
|
|
58
|
+
return this._outputs[0];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Gets the current class name
|
|
62
|
+
* @returns the class name
|
|
63
|
+
*/
|
|
64
|
+
getClassName() {
|
|
65
|
+
return "RandomRangeBlock";
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Builds the block
|
|
69
|
+
*/
|
|
70
|
+
_build() {
|
|
71
|
+
let func = null;
|
|
72
|
+
this._currentLockId = -2;
|
|
73
|
+
switch (this.min.type) {
|
|
74
|
+
case NodeParticleBlockConnectionPointTypes.Float:
|
|
75
|
+
case NodeParticleBlockConnectionPointTypes.Int:
|
|
76
|
+
func = (state) => {
|
|
77
|
+
const minValue = this.min.getConnectedValue(state);
|
|
78
|
+
const maxValue = this.max.getConnectedValue(state);
|
|
79
|
+
return Math.random() * (maxValue - minValue) + minValue;
|
|
80
|
+
};
|
|
81
|
+
break;
|
|
82
|
+
case NodeParticleBlockConnectionPointTypes.Vector2:
|
|
83
|
+
func = (state) => {
|
|
84
|
+
const minValue = this.min.getConnectedValue(state);
|
|
85
|
+
const maxValue = this.max.getConnectedValue(state);
|
|
86
|
+
return new Vector2(Math.random() * (maxValue.x - minValue.x) + minValue.x, Math.random() * (maxValue.y - minValue.y) + minValue.y);
|
|
87
|
+
};
|
|
88
|
+
break;
|
|
89
|
+
case NodeParticleBlockConnectionPointTypes.Vector3:
|
|
90
|
+
func = (state) => {
|
|
91
|
+
const minValue = this.min.getConnectedValue(state);
|
|
92
|
+
const maxValue = this.max.getConnectedValue(state);
|
|
93
|
+
return new Vector3(Math.random() * (maxValue.x - minValue.x) + minValue.x, Math.random() * (maxValue.y - minValue.y) + minValue.y, Math.random() * (maxValue.z - minValue.z) + minValue.z);
|
|
94
|
+
};
|
|
95
|
+
break;
|
|
96
|
+
case NodeParticleBlockConnectionPointTypes.Color4:
|
|
97
|
+
func = (state) => {
|
|
98
|
+
const minValue = this.min.getConnectedValue(state);
|
|
99
|
+
const maxValue = this.max.getConnectedValue(state);
|
|
100
|
+
return new Color4(Math.random() * (maxValue.r - minValue.r) + minValue.r, Math.random() * (maxValue.g - minValue.g) + minValue.g, Math.random() * (maxValue.b - minValue.b) + minValue.b, Math.random() * (maxValue.a - minValue.a) + minValue.a);
|
|
101
|
+
};
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
this.output._storedFunction = (state) => {
|
|
105
|
+
let lockId = 0;
|
|
106
|
+
switch (this.lockMode) {
|
|
107
|
+
case ParticleRandomBlockLocks.PerParticle:
|
|
108
|
+
lockId = state.particleContext?.id || -1;
|
|
109
|
+
break;
|
|
110
|
+
case ParticleRandomBlockLocks.PerSystem:
|
|
111
|
+
lockId = state.buildId || 0;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
if (this._currentLockId !== lockId) {
|
|
115
|
+
if (this.lockMode !== ParticleRandomBlockLocks.None) {
|
|
116
|
+
this._currentLockId = lockId;
|
|
117
|
+
}
|
|
118
|
+
this.output._storedValue = func(state);
|
|
119
|
+
}
|
|
120
|
+
return this.output._storedValue;
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Serializes this block in a JSON representation
|
|
125
|
+
* @returns the serialized block object
|
|
126
|
+
*/
|
|
127
|
+
serialize() {
|
|
128
|
+
const serializationObject = super.serialize();
|
|
129
|
+
serializationObject.lockMode = this.lockMode;
|
|
130
|
+
return serializationObject;
|
|
131
|
+
}
|
|
132
|
+
_deserialize(serializationObject) {
|
|
133
|
+
super._deserialize(serializationObject);
|
|
134
|
+
if (serializationObject.lockMode !== undefined) {
|
|
135
|
+
this.lockMode = serializationObject.lockMode;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
__decorate([
|
|
140
|
+
editableInPropertyPage("LockMode", 4 /* PropertyTypeForEdition.List */, "ADVANCED", {
|
|
141
|
+
notifiers: { rebuild: true },
|
|
142
|
+
embedded: true,
|
|
143
|
+
options: [
|
|
144
|
+
{ label: "None", value: ParticleRandomBlockLocks.None },
|
|
145
|
+
{ label: "Per particle", value: ParticleRandomBlockLocks.PerParticle },
|
|
146
|
+
{ label: "Per system", value: ParticleRandomBlockLocks.PerSystem },
|
|
147
|
+
],
|
|
148
|
+
})
|
|
149
|
+
], RandomRangeBlock.prototype, "lockMode", void 0);
|
|
150
|
+
RegisterClass("BABYLON.RandomRangeBlock", RandomRangeBlock);
|
|
151
|
+
//# sourceMappingURL=randomRangeBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"randomRangeBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Particles/Node/Blocks/randomRangeBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector2, Vector3 } from \"core/Maths/math.vector\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { NodeParticleBlockConnectionPointTypes } from \"../Enums/nodeParticleBlockConnectionPointTypes\";\r\nimport { NodeParticleBlock } from \"../nodeParticleBlock\";\r\nimport type { NodeParticleConnectionPoint } from \"../nodeParticleBlockConnectionPoint\";\r\nimport type { NodeParticleBuildState } from \"../nodeParticleBuildState\";\r\nimport { Color4 } from \"core/Maths/math.color\";\r\nimport { ParticleRandomBlockLocks } from \"./particleRandomBlock\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"core/Decorators/nodeDecorator\";\r\nimport type { Nullable } from \"core/types\";\r\n\r\n/**\r\n * Block used to pick a value randomly from a range\r\n */\r\nexport class RandomRangeBlock extends NodeParticleBlock {\r\n private _currentLockId = -2;\r\n /**\r\n * Gets or sets a value indicating if that block will lock its value for a specific event\r\n */\r\n @editableInPropertyPage(\"LockMode\", PropertyTypeForEdition.List, \"ADVANCED\", {\r\n notifiers: { rebuild: true },\r\n embedded: true,\r\n options: [\r\n { label: \"None\", value: ParticleRandomBlockLocks.None },\r\n { label: \"Per particle\", value: ParticleRandomBlockLocks.PerParticle },\r\n { label: \"Per system\", value: ParticleRandomBlockLocks.PerSystem },\r\n ],\r\n })\r\n public lockMode = ParticleRandomBlockLocks.PerParticle;\r\n /**\r\n * Create a new RandomRangeBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this.registerInput(\"min\", NodeParticleBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"max\", NodeParticleBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeParticleBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this.output._typeConnectionSource = this.min;\r\n\r\n this._linkConnectionTypes(0, 1);\r\n const excludedConnectionPointTypes = [\r\n NodeParticleBlockConnectionPointTypes.Matrix,\r\n NodeParticleBlockConnectionPointTypes.Particle,\r\n NodeParticleBlockConnectionPointTypes.Texture,\r\n NodeParticleBlockConnectionPointTypes.System,\r\n NodeParticleBlockConnectionPointTypes.FloatGradient,\r\n NodeParticleBlockConnectionPointTypes.Color4Gradient,\r\n NodeParticleBlockConnectionPointTypes.Vector2Gradient,\r\n NodeParticleBlockConnectionPointTypes.Vector3Gradient,\r\n ] as const;\r\n\r\n this.min.excludedConnectionPointTypes.push(...excludedConnectionPointTypes);\r\n this.max.excludedConnectionPointTypes.push(...excludedConnectionPointTypes);\r\n }\r\n\r\n /**\r\n * Gets the min input component\r\n */\r\n public get min(): NodeParticleConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the max input component\r\n */\r\n public get max(): NodeParticleConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeParticleConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"RandomRangeBlock\";\r\n }\r\n\r\n /**\r\n * Builds the block\r\n */\r\n public override _build() {\r\n let func: Nullable<(state: NodeParticleBuildState) => any> = null;\r\n this._currentLockId = -2;\r\n\r\n switch (this.min.type) {\r\n case NodeParticleBlockConnectionPointTypes.Float:\r\n case NodeParticleBlockConnectionPointTypes.Int:\r\n func = (state) => {\r\n const minValue = this.min.getConnectedValue(state);\r\n const maxValue = this.max.getConnectedValue(state);\r\n return Math.random() * (maxValue - minValue) + minValue;\r\n };\r\n break;\r\n case NodeParticleBlockConnectionPointTypes.Vector2:\r\n func = (state) => {\r\n const minValue = this.min.getConnectedValue(state);\r\n const maxValue = this.max.getConnectedValue(state);\r\n return new Vector2(Math.random() * (maxValue.x - minValue.x) + minValue.x, Math.random() * (maxValue.y - minValue.y) + minValue.y);\r\n };\r\n break;\r\n case NodeParticleBlockConnectionPointTypes.Vector3:\r\n func = (state) => {\r\n const minValue = this.min.getConnectedValue(state);\r\n const maxValue = this.max.getConnectedValue(state);\r\n return new Vector3(\r\n Math.random() * (maxValue.x - minValue.x) + minValue.x,\r\n Math.random() * (maxValue.y - minValue.y) + minValue.y,\r\n Math.random() * (maxValue.z - minValue.z) + minValue.z\r\n );\r\n };\r\n break;\r\n case NodeParticleBlockConnectionPointTypes.Color4:\r\n func = (state) => {\r\n const minValue = this.min.getConnectedValue(state);\r\n const maxValue = this.max.getConnectedValue(state);\r\n return new Color4(\r\n Math.random() * (maxValue.r - minValue.r) + minValue.r,\r\n Math.random() * (maxValue.g - minValue.g) + minValue.g,\r\n Math.random() * (maxValue.b - minValue.b) + minValue.b,\r\n Math.random() * (maxValue.a - minValue.a) + minValue.a\r\n );\r\n };\r\n break;\r\n }\r\n\r\n this.output._storedFunction = (state: NodeParticleBuildState) => {\r\n let lockId = 0;\r\n\r\n switch (this.lockMode) {\r\n case ParticleRandomBlockLocks.PerParticle:\r\n lockId = state.particleContext?.id || -1;\r\n break;\r\n case ParticleRandomBlockLocks.PerSystem:\r\n lockId = state.buildId || 0;\r\n break;\r\n }\r\n\r\n if (this._currentLockId !== lockId) {\r\n if (this.lockMode !== ParticleRandomBlockLocks.None) {\r\n this._currentLockId = lockId;\r\n }\r\n this.output._storedValue = func!(state);\r\n }\r\n return this.output._storedValue;\r\n };\r\n }\r\n\r\n /**\r\n * Serializes this block in a JSON representation\r\n * @returns the serialized block object\r\n */\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n\r\n serializationObject.lockMode = this.lockMode;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n\r\n if (serializationObject.lockMode !== undefined) {\r\n this.lockMode = serializationObject.lockMode;\r\n }\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.RandomRangeBlock\", RandomRangeBlock);\r\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { ParticleSystem } from "../../particleSystem.js";
|
|
2
|
+
import { NodeParticleBlock } from "../nodeParticleBlock.js";
|
|
3
|
+
import type { NodeParticleConnectionPoint } from "../nodeParticleBlockConnectionPoint.js";
|
|
4
|
+
import type { NodeParticleBuildState } from "../nodeParticleBuildState.js";
|
|
5
|
+
/**
|
|
6
|
+
* Block used to get a system of particles
|
|
7
|
+
*/
|
|
8
|
+
export declare class SystemBlock extends NodeParticleBlock {
|
|
9
|
+
/**
|
|
10
|
+
* Gets or sets the blend mode for the particle system
|
|
11
|
+
*/
|
|
12
|
+
blendMode: number;
|
|
13
|
+
/**
|
|
14
|
+
* Gets or sets the epsilon value used for comparison
|
|
15
|
+
*/
|
|
16
|
+
capacity: number;
|
|
17
|
+
/**
|
|
18
|
+
* Gets or sets the emit rate
|
|
19
|
+
*/
|
|
20
|
+
emitRate: number;
|
|
21
|
+
/**
|
|
22
|
+
* Gets or sets the target stop duration for the particle system
|
|
23
|
+
*/
|
|
24
|
+
targetStopDuration: number;
|
|
25
|
+
/**
|
|
26
|
+
* Gets or sets the target stop duration for the particle system
|
|
27
|
+
*/
|
|
28
|
+
startDelay: number;
|
|
29
|
+
/**
|
|
30
|
+
* Gets or sets a boolean indicating if the system should not start automatically
|
|
31
|
+
*/
|
|
32
|
+
doNoStart: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Create a new SystemBlock
|
|
35
|
+
* @param name defines the block name
|
|
36
|
+
*/
|
|
37
|
+
constructor(name: string);
|
|
38
|
+
/**
|
|
39
|
+
* Gets the current class name
|
|
40
|
+
* @returns the class name
|
|
41
|
+
*/
|
|
42
|
+
getClassName(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Gets the particle input component
|
|
45
|
+
*/
|
|
46
|
+
get particle(): NodeParticleConnectionPoint;
|
|
47
|
+
/**
|
|
48
|
+
* Gets the texture input component
|
|
49
|
+
*/
|
|
50
|
+
get texture(): NodeParticleConnectionPoint;
|
|
51
|
+
/**
|
|
52
|
+
* Gets the onStart input component
|
|
53
|
+
*/
|
|
54
|
+
get onStart(): NodeParticleConnectionPoint;
|
|
55
|
+
/**
|
|
56
|
+
* Gets the onEnd input component
|
|
57
|
+
*/
|
|
58
|
+
get onEnd(): NodeParticleConnectionPoint;
|
|
59
|
+
/**
|
|
60
|
+
* Gets the system output component
|
|
61
|
+
*/
|
|
62
|
+
get system(): NodeParticleConnectionPoint;
|
|
63
|
+
/**
|
|
64
|
+
* Builds the block and return a functional particle system
|
|
65
|
+
* @param state defines the building state
|
|
66
|
+
* @returns the built particle system
|
|
67
|
+
*/
|
|
68
|
+
createSystem(state: NodeParticleBuildState): ParticleSystem;
|
|
69
|
+
serialize(): any;
|
|
70
|
+
_deserialize(serializationObject: any): void;
|
|
71
|
+
}
|