@babylonjs/core 7.51.1 → 7.51.2
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/animation.js +2 -1
- package/Animations/animation.js.map +1 -1
- package/Buffers/bufferUtils.d.ts +7 -5
- package/Buffers/bufferUtils.js +13 -9
- package/Buffers/bufferUtils.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/constants.d.ts +32 -0
- package/Engines/constants.js +33 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/webgpuEngine.js +6 -3
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.d.ts +148 -465
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js +394 -691
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.d.ts +142 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.js +342 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.js.map +1 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.d.ts +107 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.js +130 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.js.map +1 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.d.ts +77 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js +139 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js.map +1 -0
- package/FlowGraph/Blocks/Data/Math/index.d.ts +3 -0
- package/FlowGraph/Blocks/Data/Math/index.js +3 -0
- package/FlowGraph/Blocks/Data/Math/index.js.map +1 -1
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.d.ts +85 -0
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.js +133 -0
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/Transformers/flowGraphTypeToTypeBlocks.d.ts +49 -0
- package/FlowGraph/Blocks/Data/Transformers/flowGraphTypeToTypeBlocks.js +71 -0
- package/FlowGraph/Blocks/Data/Transformers/flowGraphTypeToTypeBlocks.js.map +1 -0
- package/FlowGraph/Blocks/Data/Transformers/index.d.ts +2 -0
- package/FlowGraph/Blocks/Data/Transformers/index.js +3 -0
- package/FlowGraph/Blocks/Data/Transformers/index.js.map +1 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.d.ts +39 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.js +46 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.d.ts +35 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +34 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphContextBlock.d.ts +20 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphContextBlock.js +25 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphContextBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphFunctionReferenceBlock.d.ts +34 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphFunctionReferenceBlock.js +35 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphFunctionReferenceBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphIndexOfBlock.d.ts +39 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphIndexOfBlock.js +42 -0
- package/FlowGraph/Blocks/Data/Utils/flowGraphIndexOfBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/Utils/index.d.ts +5 -0
- package/FlowGraph/Blocks/Data/Utils/index.js +6 -0
- package/FlowGraph/Blocks/Data/Utils/index.js.map +1 -0
- package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.d.ts +0 -1
- package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js +3 -2
- package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +4 -4
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.d.ts +6 -3
- package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js +12 -6
- package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphConstantBlock.d.ts +0 -2
- package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js +2 -3
- package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.d.ts +5 -4
- package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js +5 -4
- package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.d.ts +62 -0
- package/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.js +41 -0
- package/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.d.ts +38 -33
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js +42 -25
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.d.ts +11 -16
- package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js +9 -17
- package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.d.ts +1 -1
- package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js +1 -1
- package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/{flowGraphCoordinateTransformBlock.d.ts → flowGraphTransformCoordinatesSystemBlock.d.ts} +1 -2
- package/FlowGraph/Blocks/Data/{flowGraphCoordinateTransformBlock.js → flowGraphTransformCoordinatesSystemBlock.js} +4 -5
- package/FlowGraph/Blocks/Data/flowGraphTransformCoordinatesSystemBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.d.ts +1 -1
- package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js +1 -1
- package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/index.d.ts +7 -3
- package/FlowGraph/Blocks/Data/index.js +9 -4
- package/FlowGraph/Blocks/Data/index.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.d.ts +45 -24
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js +45 -51
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.d.ts +61 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.js +39 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.js.map +1 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.d.ts +61 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.js +40 -0
- package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.js.map +1 -0
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.d.ts +12 -14
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js +19 -26
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.d.ts +6 -12
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js +13 -24
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.d.ts +31 -7
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js +22 -20
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/{Execution → Event}/flowGraphSendCustomEventBlock.d.ts +12 -7
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.js +39 -0
- package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.js.map +1 -0
- package/FlowGraph/Blocks/Event/index.d.ts +3 -0
- package/FlowGraph/Blocks/Event/index.js +3 -0
- package/FlowGraph/Blocks/Event/index.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.d.ts +44 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.js +46 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.js.map +1 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.d.ts +60 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.js +93 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.js.map +1 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.d.ts +82 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.js +105 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.js.map +1 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js +2 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.d.ts +40 -42
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +116 -50
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.d.ts +12 -4
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js +86 -8
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/index.d.ts +3 -0
- package/FlowGraph/Blocks/Execution/Animation/index.js +3 -0
- package/FlowGraph/Blocks/Execution/Animation/index.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.d.ts +1 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js +3 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/{Audio/flowGraphStopAudioBlock.d.ts → ControlFlow/flowGraphCancelDelayBlock.d.ts} +6 -8
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js +31 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js.map +1 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js +5 -5
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.d.ts +0 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js +2 -3
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.d.ts +5 -10
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js +11 -15
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.d.ts +11 -3
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js +5 -6
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.d.ts +27 -7
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js +28 -30
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.d.ts +13 -16
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js +50 -52
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.d.ts +8 -9
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js +26 -13
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.d.ts +32 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js +84 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js.map +1 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.d.ts +20 -6
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js +55 -16
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.d.ts +3 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js +36 -13
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.d.ts +13 -5
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js +22 -17
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.d.ts +12 -16
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js +21 -21
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/index.d.ts +2 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/index.js +2 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/index.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.d.ts +4 -5
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js +13 -8
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.d.ts +33 -36
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js +42 -26
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.d.ts +10 -25
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js +38 -24
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/index.d.ts +0 -3
- package/FlowGraph/Blocks/Execution/index.js +0 -3
- package/FlowGraph/Blocks/Execution/index.js.map +1 -1
- package/FlowGraph/Blocks/flowGraphBlockFactory.d.ts +16 -0
- package/FlowGraph/Blocks/flowGraphBlockFactory.js +292 -0
- package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -0
- package/FlowGraph/Blocks/flowGraphBlockNames.d.ts +145 -0
- package/FlowGraph/Blocks/flowGraphBlockNames.js +147 -0
- package/FlowGraph/Blocks/flowGraphBlockNames.js.map +1 -0
- package/FlowGraph/Blocks/index.d.ts +2 -0
- package/FlowGraph/Blocks/index.js +2 -0
- package/FlowGraph/Blocks/index.js.map +1 -1
- package/FlowGraph/{flowGraphInteger.d.ts → CustomTypes/flowGraphInteger.d.ts} +2 -3
- package/FlowGraph/{flowGraphInteger.js → CustomTypes/flowGraphInteger.js} +4 -5
- package/FlowGraph/CustomTypes/flowGraphInteger.js.map +1 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +196 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js +272 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -0
- package/FlowGraph/CustomTypes/index.d.ts +2 -0
- package/FlowGraph/CustomTypes/index.js +3 -0
- package/FlowGraph/CustomTypes/index.js.map +1 -0
- package/FlowGraph/flowGraph.d.ts +29 -34
- package/FlowGraph/flowGraph.js +120 -104
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphAssetsContext.d.ts +29 -0
- package/FlowGraph/flowGraphAssetsContext.js +52 -0
- package/FlowGraph/flowGraphAssetsContext.js.map +1 -0
- package/FlowGraph/flowGraphAsyncExecutionBlock.d.ts +15 -8
- package/FlowGraph/flowGraphAsyncExecutionBlock.js +25 -5
- package/FlowGraph/flowGraphAsyncExecutionBlock.js.map +1 -1
- package/FlowGraph/flowGraphBlock.d.ts +22 -15
- package/FlowGraph/flowGraphBlock.js +31 -52
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphConnection.d.ts +13 -12
- package/FlowGraph/flowGraphConnection.js +31 -16
- package/FlowGraph/flowGraphConnection.js.map +1 -1
- package/FlowGraph/flowGraphContext.d.ts +89 -13
- package/FlowGraph/flowGraphContext.js +210 -23
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.d.ts +4 -10
- package/FlowGraph/flowGraphCoordinator.js +4 -16
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphDataConnection.d.ts +52 -14
- package/FlowGraph/flowGraphDataConnection.js +73 -26
- package/FlowGraph/flowGraphDataConnection.js.map +1 -1
- package/FlowGraph/flowGraphEventBlock.d.ts +17 -1
- package/FlowGraph/flowGraphEventBlock.js +13 -2
- package/FlowGraph/flowGraphEventBlock.js.map +1 -1
- package/FlowGraph/flowGraphEventType.d.ts +16 -0
- package/FlowGraph/flowGraphEventType.js +18 -0
- package/FlowGraph/flowGraphEventType.js.map +1 -0
- package/FlowGraph/flowGraphExecutionBlock.d.ts +11 -1
- package/FlowGraph/flowGraphExecutionBlock.js +21 -2
- package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
- package/FlowGraph/flowGraphExecutionBlockWithOutSignal.d.ts +2 -2
- package/FlowGraph/flowGraphExecutionBlockWithOutSignal.js +0 -1
- package/FlowGraph/flowGraphExecutionBlockWithOutSignal.js.map +1 -1
- package/FlowGraph/flowGraphLogger.d.ts +60 -0
- package/FlowGraph/flowGraphLogger.js +53 -0
- package/FlowGraph/flowGraphLogger.js.map +1 -0
- package/FlowGraph/flowGraphParser.d.ts +85 -0
- package/FlowGraph/flowGraphParser.js +271 -0
- package/FlowGraph/flowGraphParser.js.map +1 -0
- package/FlowGraph/flowGraphPathConverter.d.ts +1 -1
- package/FlowGraph/flowGraphPathConverter.js +3 -2
- package/FlowGraph/flowGraphPathConverter.js.map +1 -1
- package/FlowGraph/flowGraphPathConverterComponent.d.ts +8 -1
- package/FlowGraph/flowGraphPathConverterComponent.js +18 -2
- package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
- package/FlowGraph/flowGraphRichTypes.d.ts +51 -9
- package/FlowGraph/flowGraphRichTypes.js +160 -50
- package/FlowGraph/flowGraphRichTypes.js.map +1 -1
- package/FlowGraph/flowGraphSceneEventCoordinator.d.ts +45 -0
- package/FlowGraph/flowGraphSceneEventCoordinator.js +77 -0
- package/FlowGraph/flowGraphSceneEventCoordinator.js.map +1 -0
- package/FlowGraph/flowGraphSignalConnection.d.ts +8 -5
- package/FlowGraph/flowGraphSignalConnection.js +26 -9
- package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
- package/FlowGraph/index.d.ts +6 -1
- package/FlowGraph/index.js +7 -1
- package/FlowGraph/index.js.map +1 -1
- package/FlowGraph/serialization.d.ts +5 -2
- package/FlowGraph/serialization.js +94 -22
- package/FlowGraph/serialization.js.map +1 -1
- package/FlowGraph/typeDefinitions.d.ts +74 -12
- package/FlowGraph/typeDefinitions.js.map +1 -1
- package/FlowGraph/utils.d.ts +47 -0
- package/FlowGraph/utils.js +55 -0
- package/FlowGraph/utils.js.map +1 -1
- package/Maths/math.path.js +3 -0
- package/Maths/math.path.js.map +1 -1
- package/Meshes/geometry.d.ts +2 -1
- package/Meshes/geometry.js +8 -2
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/mesh.d.ts +2 -1
- package/Meshes/mesh.js +3 -2
- package/Meshes/mesh.js.map +1 -1
- package/ObjectModel/objectModelInterfaces.d.ts +2 -2
- package/ObjectModel/objectModelInterfaces.js.map +1 -1
- package/package.json +1 -1
- package/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.d.ts +0 -24
- package/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.js +0 -39
- package/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.js.map +0 -1
- package/FlowGraph/Blocks/Data/Logic/index.d.ts +0 -1
- package/FlowGraph/Blocks/Data/Logic/index.js +0 -2
- package/FlowGraph/Blocks/Data/Logic/index.js.map +0 -1
- package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js.map +0 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.d.ts +0 -19
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js +0 -26
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js.map +0 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js +0 -25
- package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js.map +0 -1
- package/FlowGraph/Blocks/Execution/Audio/index.d.ts +0 -2
- package/FlowGraph/Blocks/Execution/Audio/index.js +0 -3
- package/FlowGraph/Blocks/Execution/Audio/index.js.map +0 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.d.ts +0 -31
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js +0 -69
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js.map +0 -1
- package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js +0 -38
- package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js.map +0 -1
- package/FlowGraph/flowGraphContextLogger.d.ts +0 -9
- package/FlowGraph/flowGraphContextLogger.js +0 -14
- package/FlowGraph/flowGraphContextLogger.js.map +0 -1
- package/FlowGraph/flowGraphInteger.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphCachedOperationBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flowGraphCachedOperationBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKtD,MAAM,SAAS,GAAG,sBAAsB,CAAC;AACzC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAgB,6BAAuC,SAAQ,cAAc;IAM/E,YAAY,cAAiC,EAAE,MAAqC;QAChF,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;IASe,cAAc,CAAC,OAAyB;QACpD,MAAM,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAoB,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5F,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,iBAAiB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YACjG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACJ,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACnD,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YAChE,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;CACJ","sourcesContent":["import type { Nullable } from \"../../../types\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../flowGraphBlock\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport type { FlowGraphDataConnection } from \"../../flowGraphDataConnection\";\r\nimport type { RichType } from \"../../flowGraphRichTypes\";\r\n\r\nconst cacheName = \"cachedOperationValue\";\r\nconst cacheExecIdName = \"cachedExecutionId\";\r\n\r\n/**\r\n * A block that will cache the result of an operation and deliver it as an output.\r\n */\r\nexport abstract class FlowGraphCachedOperationBlock<OutputT> extends FlowGraphBlock {\r\n /**\r\n * The output of the operation\r\n */\r\n public readonly value: FlowGraphDataConnection<OutputT>;\r\n\r\n constructor(outputRichType: RichType<OutputT>, config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.value = this.registerDataOutput(\"value\", outputRichType);\r\n }\r\n\r\n /**\r\n * @internal\r\n * Operation to realize\r\n * @param context the graph context\r\n */\r\n public abstract _doOperation(context: FlowGraphContext): OutputT;\r\n\r\n public override _updateOutputs(context: FlowGraphContext) {\r\n const cachedExecutionId = context._getExecutionVariable(this, cacheExecIdName, -1);\r\n const cachedValue = context._getExecutionVariable<Nullable<OutputT>>(this, cacheName, null);\r\n if (cachedValue !== undefined && cachedValue !== null && cachedExecutionId === context.executionId) {\r\n this.value.setValue(cachedValue, context);\r\n } else {\r\n const calculatedValue = this._doOperation(context);\r\n context._setExecutionVariable(this, cacheName, calculatedValue);\r\n context._setExecutionVariable(this, cacheExecIdName, context.executionId);\r\n this.value.setValue(calculatedValue, context);\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -3,7 +3,6 @@ import { FlowGraphBlock } from "../../flowGraphBlock";
|
|
|
3
3
|
import type { FlowGraphDataConnection } from "../../flowGraphDataConnection";
|
|
4
4
|
import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock";
|
|
5
5
|
/**
|
|
6
|
-
* @experimental
|
|
7
6
|
* Block that returns a value based on a condition.
|
|
8
7
|
*/
|
|
9
8
|
export declare class FlowGraphConditionalDataBlock<T> extends FlowGraphBlock {
|
|
@@ -14,15 +13,19 @@ export declare class FlowGraphConditionalDataBlock<T> extends FlowGraphBlock {
|
|
|
14
13
|
/**
|
|
15
14
|
* Input connection: The value to return if the condition is true.
|
|
16
15
|
*/
|
|
17
|
-
readonly
|
|
16
|
+
readonly onTrue: FlowGraphDataConnection<T>;
|
|
18
17
|
/**
|
|
19
18
|
* Input connection: The value to return if the condition is false.
|
|
20
19
|
*/
|
|
21
|
-
readonly
|
|
20
|
+
readonly onFalse: FlowGraphDataConnection<T>;
|
|
22
21
|
/**
|
|
23
22
|
* Output connection: The value that was returned.
|
|
24
23
|
*/
|
|
25
24
|
readonly output: FlowGraphDataConnection<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new instance of the block
|
|
27
|
+
* @param config optional configuration for this block
|
|
28
|
+
*/
|
|
26
29
|
constructor(config?: IFlowGraphBlockConfiguration);
|
|
27
30
|
/**
|
|
28
31
|
* @internal
|
|
@@ -2,30 +2,36 @@ import { FlowGraphBlock } from "../../flowGraphBlock.js";
|
|
|
2
2
|
import { RichTypeBoolean, RichTypeAny } from "../../flowGraphRichTypes.js";
|
|
3
3
|
import { RegisterClass } from "../../../Misc/typeStore.js";
|
|
4
4
|
/**
|
|
5
|
-
* @experimental
|
|
6
5
|
* Block that returns a value based on a condition.
|
|
7
6
|
*/
|
|
8
7
|
export class FlowGraphConditionalDataBlock extends FlowGraphBlock {
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new instance of the block
|
|
10
|
+
* @param config optional configuration for this block
|
|
11
|
+
*/
|
|
9
12
|
constructor(config) {
|
|
10
13
|
super(config);
|
|
11
14
|
this.condition = this.registerDataInput("condition", RichTypeBoolean);
|
|
12
|
-
this.
|
|
13
|
-
this.
|
|
15
|
+
this.onTrue = this.registerDataInput("onTrue", RichTypeAny);
|
|
16
|
+
this.onFalse = this.registerDataInput("onFalse", RichTypeAny);
|
|
14
17
|
this.output = this.registerDataOutput("output", RichTypeAny);
|
|
15
18
|
}
|
|
16
19
|
/**
|
|
17
20
|
* @internal
|
|
18
21
|
*/
|
|
19
22
|
_updateOutputs(context) {
|
|
20
|
-
|
|
23
|
+
// get the value of the condition
|
|
24
|
+
const condition = this.condition.getValue(context);
|
|
25
|
+
// set the value based on the condition truth-ness.
|
|
26
|
+
this.output.setValue(condition ? this.onTrue.getValue(context) : this.onFalse.getValue(context), context);
|
|
21
27
|
}
|
|
22
28
|
/**
|
|
23
29
|
* Gets the class name of this block
|
|
24
30
|
* @returns the class name
|
|
25
31
|
*/
|
|
26
32
|
getClassName() {
|
|
27
|
-
return "
|
|
33
|
+
return "FlowGraphConditionalBlock" /* FlowGraphBlockNames.Conditional */;
|
|
28
34
|
}
|
|
29
35
|
}
|
|
30
|
-
RegisterClass("
|
|
36
|
+
RegisterClass("FlowGraphConditionalBlock" /* FlowGraphBlockNames.Conditional */, FlowGraphConditionalDataBlock);
|
|
31
37
|
//# sourceMappingURL=flowGraphConditionalDataBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphConditionalDataBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"flowGraphConditionalDataBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD;;GAEG;AACH,MAAM,OAAO,6BAAiC,SAAQ,cAAc;IAmBhE;;;OAGG;IACH,YAAY,MAAqC;QAC7C,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACa,cAAc,CAAC,OAAyB;QACpD,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnD,mDAAmD;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9G,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,yEAAuC;IAC3C,CAAC;CACJ;AACD,aAAa,oEAAkC,6BAA6B,CAAC,CAAC","sourcesContent":["import type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport { FlowGraphBlock } from \"../../flowGraphBlock\";\r\nimport type { FlowGraphDataConnection } from \"../../flowGraphDataConnection\";\r\nimport { RichTypeBoolean, RichTypeAny } from \"../../flowGraphRichTypes\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\r\n\r\n/**\r\n * Block that returns a value based on a condition.\r\n */\r\nexport class FlowGraphConditionalDataBlock<T> extends FlowGraphBlock {\r\n /**\r\n * Input connection: The condition to check.\r\n */\r\n public readonly condition: FlowGraphDataConnection<boolean>;\r\n /**\r\n * Input connection: The value to return if the condition is true.\r\n */\r\n public readonly onTrue: FlowGraphDataConnection<T>;\r\n /**\r\n * Input connection: The value to return if the condition is false.\r\n */\r\n public readonly onFalse: FlowGraphDataConnection<T>;\r\n\r\n /**\r\n * Output connection: The value that was returned.\r\n */\r\n public readonly output: FlowGraphDataConnection<T>;\r\n\r\n /**\r\n * Creates a new instance of the block\r\n * @param config optional configuration for this block\r\n */\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.condition = this.registerDataInput(\"condition\", RichTypeBoolean);\r\n this.onTrue = this.registerDataInput(\"onTrue\", RichTypeAny);\r\n this.onFalse = this.registerDataInput(\"onFalse\", RichTypeAny);\r\n\r\n this.output = this.registerDataOutput(\"output\", RichTypeAny);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _updateOutputs(context: FlowGraphContext): void {\r\n // get the value of the condition\r\n const condition = this.condition.getValue(context);\r\n // set the value based on the condition truth-ness.\r\n this.output.setValue(condition ? this.onTrue.getValue(context) : this.onFalse.getValue(context), context);\r\n }\r\n\r\n /**\r\n * Gets the class name of this block\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphBlockNames.Conditional;\r\n }\r\n}\r\nRegisterClass(FlowGraphBlockNames.Conditional, FlowGraphConditionalDataBlock);\r\n"]}
|
|
@@ -3,7 +3,6 @@ import type { FlowGraphContext } from "../../flowGraphContext.js";
|
|
|
3
3
|
import type { FlowGraphDataConnection } from "../../flowGraphDataConnection.js";
|
|
4
4
|
import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock";
|
|
5
5
|
/**
|
|
6
|
-
* @experimental
|
|
7
6
|
* Configuration for a constant block.
|
|
8
7
|
*/
|
|
9
8
|
export interface IFlowGraphConstantBlockConfiguration<T> extends IFlowGraphBlockConfiguration {
|
|
@@ -13,7 +12,6 @@ export interface IFlowGraphConstantBlockConfiguration<T> extends IFlowGraphBlock
|
|
|
13
12
|
value: T;
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
|
-
* @experimental
|
|
17
15
|
* Block that returns a constant value.
|
|
18
16
|
*/
|
|
19
17
|
export declare class FlowGraphConstantBlock<T> extends FlowGraphBlock {
|
|
@@ -3,7 +3,6 @@ import { getRichTypeFromValue } from "../../flowGraphRichTypes.js";
|
|
|
3
3
|
import { RegisterClass } from "../../../Misc/typeStore.js";
|
|
4
4
|
import { defaultValueSerializationFunction } from "../../serialization.js";
|
|
5
5
|
/**
|
|
6
|
-
* @experimental
|
|
7
6
|
* Block that returns a constant value.
|
|
8
7
|
*/
|
|
9
8
|
export class FlowGraphConstantBlock extends FlowGraphBlock {
|
|
@@ -24,7 +23,7 @@ export class FlowGraphConstantBlock extends FlowGraphBlock {
|
|
|
24
23
|
* @returns the class name
|
|
25
24
|
*/
|
|
26
25
|
getClassName() {
|
|
27
|
-
return "
|
|
26
|
+
return "FlowGraphConstantBlock" /* FlowGraphBlockNames.Constant */;
|
|
28
27
|
}
|
|
29
28
|
/**
|
|
30
29
|
* Serializes this block
|
|
@@ -36,5 +35,5 @@ export class FlowGraphConstantBlock extends FlowGraphBlock {
|
|
|
36
35
|
valueSerializeFunction("value", this.config.value, serializationObject.config);
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
|
-
RegisterClass("
|
|
38
|
+
RegisterClass("FlowGraphConstantBlock" /* FlowGraphBlockNames.Constant */, FlowGraphConstantBlock);
|
|
40
39
|
//# sourceMappingURL=flowGraphConstantBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphConstantBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphConstantBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gCAAsC;AAG/D,OAAO,EAAE,oBAAoB,EAAE,oCAA0C;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iCAAiC,EAAE,+BAAqC;AAWjF
|
|
1
|
+
{"version":3,"file":"flowGraphConstantBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphConstantBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gCAAsC;AAG/D,OAAO,EAAE,oBAAoB,EAAE,oCAA0C;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iCAAiC,EAAE,+BAAqC;AAWjF;;GAEG;AACH,MAAM,OAAO,sBAA0B,SAAQ,cAAc;IAMzD;IACI;;OAEG;IACa,MAA+C;QAE/D,KAAK,CAAC,MAAM,CAAC,CAAC;QAFE,WAAM,GAAN,MAAM,CAAyC;QAI/D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxF,CAAC;IAEe,cAAc,CAAC,OAAyB;QACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,mEAAoC;IACxC,CAAC;IAED;;;;OAIG;IACa,SAAS,CACrB,sBAA2B,EAAE,EAC7B,yBAAqF,iCAAiC;QAEtH,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACrC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;CACJ;AACD,aAAa,8DAA+B,sBAAsB,CAAC,CAAC","sourcesContent":["import { FlowGraphBlock } from \"core/FlowGraph/flowGraphBlock\";\r\nimport type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\r\nimport type { FlowGraphDataConnection } from \"core/FlowGraph/flowGraphDataConnection\";\r\nimport { getRichTypeFromValue } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { defaultValueSerializationFunction } from \"core/FlowGraph/serialization\";\r\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\r\n/**\r\n * Configuration for a constant block.\r\n */\r\nexport interface IFlowGraphConstantBlockConfiguration<T> extends IFlowGraphBlockConfiguration {\r\n /**\r\n * The value of the constant.\r\n */\r\n value: T;\r\n}\r\n/**\r\n * Block that returns a constant value.\r\n */\r\nexport class FlowGraphConstantBlock<T> extends FlowGraphBlock {\r\n /**\r\n * Output connection: The constant value.\r\n */\r\n public readonly output: FlowGraphDataConnection<T>;\r\n\r\n constructor(\r\n /**\r\n * the configuration of the block\r\n */\r\n public override config: IFlowGraphConstantBlockConfiguration<T>\r\n ) {\r\n super(config);\r\n\r\n this.output = this.registerDataOutput(\"output\", getRichTypeFromValue(config.value));\r\n }\r\n\r\n public override _updateOutputs(context: FlowGraphContext): void {\r\n this.output.setValue(this.config.value, context);\r\n }\r\n\r\n /**\r\n * Gets the class name of this block\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphBlockNames.Constant;\r\n }\r\n\r\n /**\r\n * Serializes this block\r\n * @param serializationObject the object to serialize to\r\n * @param valueSerializeFunction the function to use to serialize the value\r\n */\r\n public override serialize(\r\n serializationObject: any = {},\r\n valueSerializeFunction: (key: string, value: any, serializationObject: any) => any = defaultValueSerializationFunction\r\n ) {\r\n super.serialize(serializationObject);\r\n valueSerializeFunction(\"value\", this.config.value, serializationObject.config);\r\n }\r\n}\r\nRegisterClass(FlowGraphBlockNames.Constant, FlowGraphConstantBlock);\r\n"]}
|
|
@@ -3,19 +3,20 @@ import type { RichType } from "../../flowGraphRichTypes";
|
|
|
3
3
|
import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock";
|
|
4
4
|
import { FlowGraphCachedOperationBlock } from "./flowGraphCachedOperationBlock";
|
|
5
5
|
/**
|
|
6
|
-
* @experimental
|
|
7
6
|
* Block that outputs a value of type ResultT, resulting of an operation with no inputs.
|
|
7
|
+
* This block is being extended by some math operations and should not be used directly.
|
|
8
|
+
* @internal
|
|
8
9
|
*/
|
|
9
10
|
export declare class FlowGraphConstantOperationBlock<ResultT> extends FlowGraphCachedOperationBlock<ResultT> {
|
|
10
11
|
private _operation;
|
|
11
12
|
private _className;
|
|
12
|
-
constructor(richType: RichType<ResultT>, _operation: () => ResultT, _className: string, config?: IFlowGraphBlockConfiguration);
|
|
13
|
+
constructor(richType: RichType<ResultT>, _operation: (context: FlowGraphContext) => ResultT, _className: string, config?: IFlowGraphBlockConfiguration);
|
|
13
14
|
/**
|
|
14
15
|
* the operation performed by this block
|
|
15
|
-
* @param
|
|
16
|
+
* @param context the graph context
|
|
16
17
|
* @returns the result of the operation
|
|
17
18
|
*/
|
|
18
|
-
_doOperation(
|
|
19
|
+
_doOperation(context: FlowGraphContext): ResultT;
|
|
19
20
|
/**
|
|
20
21
|
* Gets the class name of this block
|
|
21
22
|
* @returns the class name
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FlowGraphCachedOperationBlock } from "./flowGraphCachedOperationBlock.js";
|
|
2
2
|
/**
|
|
3
|
-
* @experimental
|
|
4
3
|
* Block that outputs a value of type ResultT, resulting of an operation with no inputs.
|
|
4
|
+
* This block is being extended by some math operations and should not be used directly.
|
|
5
|
+
* @internal
|
|
5
6
|
*/
|
|
6
7
|
export class FlowGraphConstantOperationBlock extends FlowGraphCachedOperationBlock {
|
|
7
8
|
constructor(richType, _operation, _className, config) {
|
|
@@ -11,11 +12,11 @@ export class FlowGraphConstantOperationBlock extends FlowGraphCachedOperationBlo
|
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* the operation performed by this block
|
|
14
|
-
* @param
|
|
15
|
+
* @param context the graph context
|
|
15
16
|
* @returns the result of the operation
|
|
16
17
|
*/
|
|
17
|
-
_doOperation(
|
|
18
|
-
return this._operation();
|
|
18
|
+
_doOperation(context) {
|
|
19
|
+
return this._operation(context);
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Gets the class name of this block
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphConstantOperationBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF
|
|
1
|
+
{"version":3,"file":"flowGraphConstantOperationBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF;;;;GAIG;AACH,MAAM,OAAO,+BAAyC,SAAQ,6BAAsC;IAChG,YACI,QAA2B,EACnB,UAAkD,EAClD,UAAkB,EAC1B,MAAqC;QAErC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAJhB,eAAU,GAAV,UAAU,CAAwC;QAClD,eAAU,GAAV,UAAU,CAAQ;IAI9B,CAAC;IAED;;;;OAIG;IACa,YAAY,CAAC,OAAyB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ","sourcesContent":["import type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport type { RichType } from \"../../flowGraphRichTypes\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { FlowGraphCachedOperationBlock } from \"./flowGraphCachedOperationBlock\";\r\n/**\r\n * Block that outputs a value of type ResultT, resulting of an operation with no inputs.\r\n * This block is being extended by some math operations and should not be used directly.\r\n * @internal\r\n */\r\nexport class FlowGraphConstantOperationBlock<ResultT> extends FlowGraphCachedOperationBlock<ResultT> {\r\n constructor(\r\n richType: RichType<ResultT>,\r\n private _operation: (context: FlowGraphContext) => ResultT,\r\n private _className: string,\r\n config?: IFlowGraphBlockConfiguration\r\n ) {\r\n super(richType, config);\r\n }\r\n\r\n /**\r\n * the operation performed by this block\r\n * @param context the graph context\r\n * @returns the result of the operation\r\n */\r\n public override _doOperation(context: FlowGraphContext): ResultT {\r\n return this._operation(context);\r\n }\r\n\r\n /**\r\n * Gets the class name of this block\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return this._className;\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { AssetType, FlowGraphAssetType } from "../../flowGraphAssetsContext.js";
|
|
2
|
+
import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock.js";
|
|
3
|
+
import { FlowGraphBlock } from "../../flowGraphBlock.js";
|
|
4
|
+
import type { FlowGraphContext } from "../../flowGraphContext.js";
|
|
5
|
+
import type { FlowGraphDataConnection } from "../../flowGraphDataConnection.js";
|
|
6
|
+
import type { Nullable } from "../../../types.js";
|
|
7
|
+
import { FlowGraphInteger } from "../../CustomTypes/flowGraphInteger.js";
|
|
8
|
+
import type { FlowGraphNumber } from "../../utils.js";
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for the get asset block.
|
|
11
|
+
*/
|
|
12
|
+
export interface IFlowGraphGetAssetBlockConfiguration<T> extends IFlowGraphBlockConfiguration {
|
|
13
|
+
/**
|
|
14
|
+
* The type of the asset that will be retrieved.
|
|
15
|
+
*/
|
|
16
|
+
type: T;
|
|
17
|
+
/**
|
|
18
|
+
* The index of the asset in the corresponding array in the assets context.
|
|
19
|
+
* If not provided you can still change it using the input connection.
|
|
20
|
+
*/
|
|
21
|
+
index?: number | FlowGraphInteger;
|
|
22
|
+
/**
|
|
23
|
+
* If set to true, instead of the index in the array it will search for the unique id of the asset.
|
|
24
|
+
* The value of index will be used as the unique id.
|
|
25
|
+
*/
|
|
26
|
+
useIndexAsUniqueId?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A block that will deliver an asset as an output, based on its type and place in the assets index.
|
|
30
|
+
*
|
|
31
|
+
* The assets are loaded from the assetsContext defined in the context running this block. The assetsContext is a class extending AbstractClass,
|
|
32
|
+
* meaning it can be a Scene, an AssetsContainers, and any other class that extends AbstractClass.
|
|
33
|
+
*/
|
|
34
|
+
export declare class FlowGraphGetAssetBlock<T extends FlowGraphAssetType> extends FlowGraphBlock {
|
|
35
|
+
/**
|
|
36
|
+
* the configuration of the block
|
|
37
|
+
*/
|
|
38
|
+
config: IFlowGraphGetAssetBlockConfiguration<T>;
|
|
39
|
+
/**
|
|
40
|
+
* Output connection: The value of the property.
|
|
41
|
+
*/
|
|
42
|
+
readonly value: FlowGraphDataConnection<Nullable<AssetType<T>>>;
|
|
43
|
+
/**
|
|
44
|
+
* Input connection: The type of the asset.
|
|
45
|
+
*/
|
|
46
|
+
readonly type: FlowGraphDataConnection<T>;
|
|
47
|
+
/**
|
|
48
|
+
* Input connection: The index of the asset in the corresponding array in the assets context.
|
|
49
|
+
*/
|
|
50
|
+
readonly index: FlowGraphDataConnection<FlowGraphNumber>;
|
|
51
|
+
constructor(
|
|
52
|
+
/**
|
|
53
|
+
* the configuration of the block
|
|
54
|
+
*/
|
|
55
|
+
config: IFlowGraphGetAssetBlockConfiguration<T>);
|
|
56
|
+
_updateOutputs(context: FlowGraphContext): void;
|
|
57
|
+
/**
|
|
58
|
+
* Gets the class name of this block
|
|
59
|
+
* @returns the class name
|
|
60
|
+
*/
|
|
61
|
+
getClassName(): string;
|
|
62
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { GetFlowGraphAssetWithType } from "../../flowGraphAssetsContext.js";
|
|
2
|
+
import { FlowGraphBlock } from "../../flowGraphBlock.js";
|
|
3
|
+
import { RichTypeAny } from "../../flowGraphRichTypes.js";
|
|
4
|
+
import { RegisterClass } from "../../../Misc/typeStore.js";
|
|
5
|
+
import { FlowGraphInteger } from "../../CustomTypes/flowGraphInteger.js";
|
|
6
|
+
import { getNumericValue } from "../../utils.js";
|
|
7
|
+
/**
|
|
8
|
+
* A block that will deliver an asset as an output, based on its type and place in the assets index.
|
|
9
|
+
*
|
|
10
|
+
* The assets are loaded from the assetsContext defined in the context running this block. The assetsContext is a class extending AbstractClass,
|
|
11
|
+
* meaning it can be a Scene, an AssetsContainers, and any other class that extends AbstractClass.
|
|
12
|
+
*/
|
|
13
|
+
export class FlowGraphGetAssetBlock extends FlowGraphBlock {
|
|
14
|
+
constructor(
|
|
15
|
+
/**
|
|
16
|
+
* the configuration of the block
|
|
17
|
+
*/
|
|
18
|
+
config) {
|
|
19
|
+
super(config);
|
|
20
|
+
this.config = config;
|
|
21
|
+
this.type = this.registerDataInput("type", RichTypeAny, config.type);
|
|
22
|
+
this.value = this.registerDataOutput("value", RichTypeAny);
|
|
23
|
+
this.index = this.registerDataInput("index", RichTypeAny, new FlowGraphInteger(getNumericValue(config.index ?? -1)));
|
|
24
|
+
}
|
|
25
|
+
_updateOutputs(context) {
|
|
26
|
+
const type = this.type.getValue(context);
|
|
27
|
+
const index = this.index.getValue(context);
|
|
28
|
+
// get the asset from the context
|
|
29
|
+
const asset = GetFlowGraphAssetWithType(context.assetsContext, type, getNumericValue(index), this.config.useIndexAsUniqueId);
|
|
30
|
+
this.value.setValue(asset, context);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Gets the class name of this block
|
|
34
|
+
* @returns the class name
|
|
35
|
+
*/
|
|
36
|
+
getClassName() {
|
|
37
|
+
return "FlowGraphGetAssetBlock" /* FlowGraphBlockNames.GetAsset */;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
RegisterClass("FlowGraphGetAssetBlock" /* FlowGraphBlockNames.GetAsset */, FlowGraphGetAssetBlock);
|
|
41
|
+
//# sourceMappingURL=flowGraphGetAssetBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowGraphGetAssetBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,wCAA8C;AAElF,OAAO,EAAE,cAAc,EAAE,gCAAsC;AAG/D,OAAO,EAAE,WAAW,EAAE,oCAA0C;AAGhE,OAAO,EAAE,aAAa,EAAE,mCAA4B;AACpD,OAAO,EAAE,gBAAgB,EAAE,8CAAoD;AAE/E,OAAO,EAAE,eAAe,EAAE,uBAA6B;AAuBvD;;;;;GAKG;AACH,MAAM,OAAO,sBAAqD,SAAQ,cAAc;IAgBpF;IACI;;OAEG;IACa,MAA+C;QAE/D,KAAK,CAAC,MAAM,CAAC,CAAC;QAFE,WAAM,GAAN,MAAM,CAAyC;QAG/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzH,CAAC;IAEe,cAAc,CAAC,OAAyB;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,iCAAiC;QACjC,MAAM,KAAK,GAAG,yBAAyB,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7H,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,mEAAoC;IACxC,CAAC;CACJ;AAED,aAAa,8DAA+B,sBAAsB,CAAC,CAAC","sourcesContent":["import type { AssetType, FlowGraphAssetType } from \"core/FlowGraph/flowGraphAssetsContext\";\nimport { GetFlowGraphAssetWithType } from \"core/FlowGraph/flowGraphAssetsContext\";\nimport type { IFlowGraphBlockConfiguration } from \"core/FlowGraph/flowGraphBlock\";\nimport { FlowGraphBlock } from \"core/FlowGraph/flowGraphBlock\";\nimport type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\nimport type { FlowGraphDataConnection } from \"core/FlowGraph/flowGraphDataConnection\";\nimport { RichTypeAny } from \"core/FlowGraph/flowGraphRichTypes\";\nimport type { Nullable } from \"core/types\";\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\nimport { RegisterClass } from \"core/Misc/typeStore\";\nimport { FlowGraphInteger } from \"core/FlowGraph/CustomTypes/flowGraphInteger\";\nimport type { FlowGraphNumber } from \"core/FlowGraph/utils\";\nimport { getNumericValue } from \"core/FlowGraph/utils\";\n\n/**\n * Configuration for the get asset block.\n */\nexport interface IFlowGraphGetAssetBlockConfiguration<T> extends IFlowGraphBlockConfiguration {\n /**\n * The type of the asset that will be retrieved.\n */\n type: T;\n /**\n * The index of the asset in the corresponding array in the assets context.\n * If not provided you can still change it using the input connection.\n */\n index?: number | FlowGraphInteger;\n\n /**\n * If set to true, instead of the index in the array it will search for the unique id of the asset.\n * The value of index will be used as the unique id.\n */\n useIndexAsUniqueId?: boolean;\n}\n\n/**\n * A block that will deliver an asset as an output, based on its type and place in the assets index.\n *\n * The assets are loaded from the assetsContext defined in the context running this block. The assetsContext is a class extending AbstractClass,\n * meaning it can be a Scene, an AssetsContainers, and any other class that extends AbstractClass.\n */\nexport class FlowGraphGetAssetBlock<T extends FlowGraphAssetType> extends FlowGraphBlock {\n /**\n * Output connection: The value of the property.\n */\n public readonly value: FlowGraphDataConnection<Nullable<AssetType<T>>>;\n\n /**\n * Input connection: The type of the asset.\n */\n public readonly type: FlowGraphDataConnection<T>;\n\n /**\n * Input connection: The index of the asset in the corresponding array in the assets context.\n */\n public readonly index: FlowGraphDataConnection<FlowGraphNumber>;\n\n public constructor(\n /**\n * the configuration of the block\n */\n public override config: IFlowGraphGetAssetBlockConfiguration<T>\n ) {\n super(config);\n this.type = this.registerDataInput(\"type\", RichTypeAny, config.type);\n this.value = this.registerDataOutput(\"value\", RichTypeAny);\n this.index = this.registerDataInput(\"index\", RichTypeAny, new FlowGraphInteger(getNumericValue(config.index ?? -1)));\n }\n\n public override _updateOutputs(context: FlowGraphContext): void {\n const type = this.type.getValue(context);\n const index = this.index.getValue(context);\n // get the asset from the context\n const asset = GetFlowGraphAssetWithType(context.assetsContext, type, getNumericValue(index), this.config.useIndexAsUniqueId);\n this.value.setValue(asset, context);\n }\n\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n public override getClassName(): string {\n return FlowGraphBlockNames.GetAsset;\n }\n}\n\nRegisterClass(FlowGraphBlockNames.GetAsset, FlowGraphGetAssetBlock);\n"]}
|
|
@@ -1,57 +1,62 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export interface IFlowGraphGetPropertyBlockConfiguration extends IFlowGraphBlockConfiguration {
|
|
1
|
+
import type { AssetType, FlowGraphAssetType } from "../../flowGraphAssetsContext.js";
|
|
2
|
+
import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock.js";
|
|
3
|
+
import { FlowGraphBlock } from "../../flowGraphBlock.js";
|
|
4
|
+
import type { FlowGraphContext } from "../../flowGraphContext.js";
|
|
5
|
+
import type { FlowGraphDataConnection } from "../../flowGraphDataConnection.js";
|
|
6
|
+
export interface IFlowGraphGetPropertyBlockConfiguration<O extends FlowGraphAssetType> extends IFlowGraphBlockConfiguration {
|
|
7
|
+
/**
|
|
8
|
+
* The name of the property that will be set
|
|
9
|
+
*/
|
|
10
|
+
propertyName?: string;
|
|
12
11
|
/**
|
|
13
|
-
* The
|
|
12
|
+
* The target asset from which the property will be retrieved
|
|
14
13
|
*/
|
|
15
|
-
|
|
14
|
+
object?: AssetType<O>;
|
|
16
15
|
/**
|
|
17
|
-
*
|
|
16
|
+
* If true, the block will reset the output to the default value when the target asset is undefined.
|
|
18
17
|
*/
|
|
19
|
-
|
|
18
|
+
resetToDefaultWhenUndefined?: boolean;
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
|
-
*
|
|
21
|
+
* This block will deliver a property of an asset, based on the property name and an input asset.
|
|
22
|
+
* The property name can include dots ("."), which will be interpreted as a path to the property.
|
|
23
|
+
*
|
|
24
|
+
* For example, with an input of a mesh asset, the property name "position.x" will deliver the x component of the position of the mesh.
|
|
25
|
+
*
|
|
26
|
+
* Note that it is recommended to input the object on which you are working on (i.e. a material) rather than providing a mesh as object and then getting the material from it.
|
|
23
27
|
*/
|
|
24
|
-
export declare class FlowGraphGetPropertyBlock extends FlowGraphBlock {
|
|
28
|
+
export declare class FlowGraphGetPropertyBlock<P extends any, O extends FlowGraphAssetType> extends FlowGraphBlock {
|
|
25
29
|
/**
|
|
26
30
|
* the configuration of the block
|
|
27
31
|
*/
|
|
28
|
-
config: IFlowGraphGetPropertyBlockConfiguration
|
|
32
|
+
config: IFlowGraphGetPropertyBlockConfiguration<O>;
|
|
29
33
|
/**
|
|
30
34
|
* Output connection: The value of the property.
|
|
31
35
|
*/
|
|
32
|
-
readonly value: FlowGraphDataConnection<
|
|
36
|
+
readonly value: FlowGraphDataConnection<P>;
|
|
33
37
|
/**
|
|
34
|
-
* The
|
|
38
|
+
* Input connection: The asset from which the property will be retrieved
|
|
35
39
|
*/
|
|
36
|
-
readonly
|
|
37
|
-
constructor(
|
|
40
|
+
readonly object: FlowGraphDataConnection<AssetType<O>>;
|
|
38
41
|
/**
|
|
39
|
-
*
|
|
42
|
+
* Input connection: The name of the property that will be set
|
|
40
43
|
*/
|
|
41
|
-
|
|
42
|
-
_updateOutputs(context: FlowGraphContext): void;
|
|
44
|
+
readonly propertyName: FlowGraphDataConnection<string>;
|
|
43
45
|
/**
|
|
44
|
-
*
|
|
45
|
-
* @returns the class name
|
|
46
|
+
* Output connection: Whether the value is valid.
|
|
46
47
|
*/
|
|
47
|
-
|
|
48
|
+
readonly isValid: FlowGraphDataConnection<boolean>;
|
|
48
49
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
50
|
+
* Input connection: A function that can be used to get the value of the property.
|
|
51
|
+
* This will be used if defined, instead of the default get function.
|
|
51
52
|
*/
|
|
52
|
-
|
|
53
|
+
readonly customGetFunction: FlowGraphDataConnection<(target: AssetType<O>, propertyName: string, context: FlowGraphContext) => P | undefined>;
|
|
54
|
+
constructor(
|
|
53
55
|
/**
|
|
54
|
-
*
|
|
56
|
+
* the configuration of the block
|
|
55
57
|
*/
|
|
56
|
-
|
|
58
|
+
config: IFlowGraphGetPropertyBlockConfiguration<O>);
|
|
59
|
+
_updateOutputs(context: FlowGraphContext): void;
|
|
60
|
+
private _getPropertyValue;
|
|
61
|
+
getClassName(): string;
|
|
57
62
|
}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { RegisterClass } from "../../../Misc/typeStore.js";
|
|
2
1
|
import { FlowGraphBlock } from "../../flowGraphBlock.js";
|
|
3
2
|
import { RichTypeAny } from "../../flowGraphRichTypes.js";
|
|
4
|
-
import {
|
|
3
|
+
import { RegisterClass } from "../../../Misc/typeStore.js";
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
5
|
+
* This block will deliver a property of an asset, based on the property name and an input asset.
|
|
6
|
+
* The property name can include dots ("."), which will be interpreted as a path to the property.
|
|
7
|
+
*
|
|
8
|
+
* For example, with an input of a mesh asset, the property name "position.x" will deliver the x component of the position of the mesh.
|
|
9
|
+
*
|
|
10
|
+
* Note that it is recommended to input the object on which you are working on (i.e. a material) rather than providing a mesh as object and then getting the material from it.
|
|
7
11
|
*/
|
|
8
12
|
export class FlowGraphGetPropertyBlock extends FlowGraphBlock {
|
|
9
13
|
constructor(
|
|
@@ -13,33 +17,46 @@ export class FlowGraphGetPropertyBlock extends FlowGraphBlock {
|
|
|
13
17
|
config) {
|
|
14
18
|
super(config);
|
|
15
19
|
this.config = config;
|
|
20
|
+
this.object = this.registerDataInput("object", RichTypeAny, config.object);
|
|
21
|
+
this.propertyName = this.registerDataInput("propertyName", RichTypeAny, config.propertyName);
|
|
16
22
|
this.value = this.registerDataOutput("value", RichTypeAny);
|
|
17
|
-
this.
|
|
23
|
+
this.isValid = this.registerDataOutput("isValid", RichTypeAny, false);
|
|
24
|
+
this.customGetFunction = this.registerDataInput("customGetFunction", RichTypeAny);
|
|
18
25
|
}
|
|
19
26
|
_updateOutputs(context) {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
const getter = this.customGetFunction.getValue(context);
|
|
28
|
+
let value;
|
|
29
|
+
if (getter) {
|
|
30
|
+
value = getter(this.object.getValue(context), this.propertyName.getValue(context), context);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const target = this.object.getValue(context);
|
|
34
|
+
const propertyName = this.propertyName.getValue(context);
|
|
35
|
+
value = target && propertyName ? this._getPropertyValue(target, propertyName) : undefined;
|
|
36
|
+
}
|
|
37
|
+
if (value === undefined) {
|
|
38
|
+
this.value.resetToDefaultValue(context);
|
|
39
|
+
this.isValid.setValue(false, context);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.value.setValue(value, context);
|
|
43
|
+
this.isValid.setValue(true, context);
|
|
44
|
+
}
|
|
23
45
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
46
|
+
_getPropertyValue(target, propertyName) {
|
|
47
|
+
const path = propertyName.split(".");
|
|
48
|
+
let value = target;
|
|
49
|
+
for (const prop of path) {
|
|
50
|
+
value = value[prop];
|
|
51
|
+
if (value === undefined) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return value;
|
|
30
56
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* @param serializationObject the object to serialize to
|
|
34
|
-
*/
|
|
35
|
-
serialize(serializationObject = {}) {
|
|
36
|
-
super.serialize(serializationObject);
|
|
37
|
-
serializationObject.config.path = this.config.path;
|
|
57
|
+
getClassName() {
|
|
58
|
+
return "FlowGraphGetPropertyBlock" /* FlowGraphBlockNames.GetProperty */;
|
|
38
59
|
}
|
|
39
60
|
}
|
|
40
|
-
|
|
41
|
-
* Class name of the block.
|
|
42
|
-
*/
|
|
43
|
-
FlowGraphGetPropertyBlock.ClassName = "FGGetPropertyBlock";
|
|
44
|
-
RegisterClass(FlowGraphGetPropertyBlock.ClassName, FlowGraphGetPropertyBlock);
|
|
61
|
+
RegisterClass("FlowGraphGetPropertyBlock" /* FlowGraphBlockNames.GetProperty */, FlowGraphGetPropertyBlock);
|
|
45
62
|
//# sourceMappingURL=flowGraphGetPropertyBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphGetPropertyBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flowGraphGetPropertyBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,gCAAsC;AAG/D,OAAO,EAAE,WAAW,EAAE,oCAA0C;AAChE,OAAO,EAAE,aAAa,EAAE,mCAA4B;AAoBpD;;;;;;;GAOG;AACH,MAAM,OAAO,yBAAuE,SAAQ,cAAc;IA2BtG;IACI;;OAEG;IACa,MAAkD;QAElE,KAAK,CAAC,MAAM,CAAC,CAAC;QAFE,WAAM,GAAN,MAAM,CAA4C;QAGlE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACtF,CAAC;IAEe,cAAc,CAAC,OAAyB;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC;QACV,IAAI,MAAM,EAAE,CAAC;YACT,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzD,KAAK,GAAG,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,MAAoB,EAAE,YAAoB;QAChE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,GAAQ,MAAM,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACtB,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO;YACX,CAAC;QACL,CAAC;QACD,OAAO,KAAU,CAAC;IACtB,CAAC;IAEe,YAAY;QACxB,yEAAuC;IAC3C,CAAC;CACJ;AAED,aAAa,oEAAkC,yBAAyB,CAAC,CAAC","sourcesContent":["import type { AssetType, FlowGraphAssetType } from \"core/FlowGraph/flowGraphAssetsContext\";\nimport type { IFlowGraphBlockConfiguration } from \"core/FlowGraph/flowGraphBlock\";\nimport { FlowGraphBlock } from \"core/FlowGraph/flowGraphBlock\";\nimport type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\nimport type { FlowGraphDataConnection } from \"core/FlowGraph/flowGraphDataConnection\";\nimport { RichTypeAny } from \"core/FlowGraph/flowGraphRichTypes\";\nimport { RegisterClass } from \"core/Misc/typeStore\";\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\n\nexport interface IFlowGraphGetPropertyBlockConfiguration<O extends FlowGraphAssetType> extends IFlowGraphBlockConfiguration {\n /**\n * The name of the property that will be set\n */\n propertyName?: string;\n\n /**\n * The target asset from which the property will be retrieved\n */\n object?: AssetType<O>;\n\n /**\n * If true, the block will reset the output to the default value when the target asset is undefined.\n */\n resetToDefaultWhenUndefined?: boolean;\n}\n\n/**\n * This block will deliver a property of an asset, based on the property name and an input asset.\n * The property name can include dots (\".\"), which will be interpreted as a path to the property.\n *\n * For example, with an input of a mesh asset, the property name \"position.x\" will deliver the x component of the position of the mesh.\n *\n * Note that it is recommended to input the object on which you are working on (i.e. a material) rather than providing a mesh as object and then getting the material from it.\n */\nexport class FlowGraphGetPropertyBlock<P extends any, O extends FlowGraphAssetType> extends FlowGraphBlock {\n /**\n * Output connection: The value of the property.\n */\n public readonly value: FlowGraphDataConnection<P>;\n\n /**\n * Input connection: The asset from which the property will be retrieved\n */\n public readonly object: FlowGraphDataConnection<AssetType<O>>;\n\n /**\n * Input connection: The name of the property that will be set\n */\n public readonly propertyName: FlowGraphDataConnection<string>;\n\n /**\n * Output connection: Whether the value is valid.\n */\n public readonly isValid: FlowGraphDataConnection<boolean>;\n\n /**\n * Input connection: A function that can be used to get the value of the property.\n * This will be used if defined, instead of the default get function.\n */\n public readonly customGetFunction: FlowGraphDataConnection<(target: AssetType<O>, propertyName: string, context: FlowGraphContext) => P | undefined>;\n\n constructor(\n /**\n * the configuration of the block\n */\n public override config: IFlowGraphGetPropertyBlockConfiguration<O>\n ) {\n super(config);\n this.object = this.registerDataInput(\"object\", RichTypeAny, config.object);\n this.propertyName = this.registerDataInput(\"propertyName\", RichTypeAny, config.propertyName);\n this.value = this.registerDataOutput(\"value\", RichTypeAny);\n this.isValid = this.registerDataOutput(\"isValid\", RichTypeAny, false);\n this.customGetFunction = this.registerDataInput(\"customGetFunction\", RichTypeAny);\n }\n\n public override _updateOutputs(context: FlowGraphContext): void {\n const getter = this.customGetFunction.getValue(context);\n let value;\n if (getter) {\n value = getter(this.object.getValue(context), this.propertyName.getValue(context), context);\n } else {\n const target = this.object.getValue(context);\n const propertyName = this.propertyName.getValue(context);\n value = target && propertyName ? this._getPropertyValue(target, propertyName) : undefined;\n }\n if (value === undefined) {\n this.value.resetToDefaultValue(context);\n this.isValid.setValue(false, context);\n } else {\n this.value.setValue(value, context);\n this.isValid.setValue(true, context);\n }\n }\n\n private _getPropertyValue(target: AssetType<O>, propertyName: string): P | undefined {\n const path = propertyName.split(\".\");\n let value: any = target;\n for (const prop of path) {\n value = value[prop];\n if (value === undefined) {\n return;\n }\n }\n return value as P;\n }\n\n public override getClassName(): string {\n return FlowGraphBlockNames.GetProperty;\n }\n}\n\nRegisterClass(FlowGraphBlockNames.GetProperty, FlowGraphGetPropertyBlock);\n"]}
|