@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
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { Vector3, Vector2 } from "../../Maths/math.vector.js";
|
|
2
|
+
// Note - the matrix classes are basically column-major, and work similarly to Babylon.js' Matrix class.
|
|
3
|
+
/**
|
|
4
|
+
* A 2x2 matrix.
|
|
5
|
+
*/
|
|
6
|
+
export class FlowGraphMatrix2D {
|
|
7
|
+
constructor(m = [1, 0, 0, 1]) {
|
|
8
|
+
this._m = m;
|
|
9
|
+
}
|
|
10
|
+
get m() {
|
|
11
|
+
return this._m;
|
|
12
|
+
}
|
|
13
|
+
transformVector(v) {
|
|
14
|
+
return this.transformVectorToRef(v, new Vector2());
|
|
15
|
+
}
|
|
16
|
+
transformVectorToRef(v, result) {
|
|
17
|
+
result.x = v.x * this._m[0] + v.y * this._m[1];
|
|
18
|
+
result.y = v.x * this._m[2] + v.y * this._m[3];
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
asArray() {
|
|
22
|
+
return this.toArray();
|
|
23
|
+
}
|
|
24
|
+
toArray(emptyArray = []) {
|
|
25
|
+
for (let i = 0; i < 4; i++) {
|
|
26
|
+
emptyArray[i] = this._m[i];
|
|
27
|
+
}
|
|
28
|
+
return emptyArray;
|
|
29
|
+
}
|
|
30
|
+
fromArray(array) {
|
|
31
|
+
for (let i = 0; i < 4; i++) {
|
|
32
|
+
this._m[i] = array[i];
|
|
33
|
+
}
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
multiplyToRef(other, result) {
|
|
37
|
+
const m = this._m;
|
|
38
|
+
const o = other._m;
|
|
39
|
+
const r = result._m;
|
|
40
|
+
r[0] = m[0] * o[0] + m[1] * o[2];
|
|
41
|
+
r[1] = m[0] * o[1] + m[1] * o[3];
|
|
42
|
+
r[2] = m[2] * o[0] + m[3] * o[2];
|
|
43
|
+
r[3] = m[2] * o[1] + m[3] * o[3];
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
multiply(other) {
|
|
47
|
+
return this.multiplyToRef(other, new FlowGraphMatrix2D());
|
|
48
|
+
}
|
|
49
|
+
divideToRef(other, result) {
|
|
50
|
+
const m = this._m;
|
|
51
|
+
const o = other._m;
|
|
52
|
+
const r = result._m;
|
|
53
|
+
r[0] = m[0] / o[0];
|
|
54
|
+
r[1] = m[1] / o[1];
|
|
55
|
+
r[2] = m[2] / o[2];
|
|
56
|
+
r[3] = m[3] / o[3];
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
divide(other) {
|
|
60
|
+
return this.divideToRef(other, new FlowGraphMatrix2D());
|
|
61
|
+
}
|
|
62
|
+
addToRef(other, result) {
|
|
63
|
+
const m = this._m;
|
|
64
|
+
const o = other.m;
|
|
65
|
+
const r = result.m;
|
|
66
|
+
r[0] = m[0] + o[0];
|
|
67
|
+
r[1] = m[1] + o[1];
|
|
68
|
+
r[2] = m[2] + o[2];
|
|
69
|
+
r[3] = m[3] + o[3];
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
add(other) {
|
|
73
|
+
return this.addToRef(other, new FlowGraphMatrix2D());
|
|
74
|
+
}
|
|
75
|
+
subtractToRef(other, result) {
|
|
76
|
+
const m = this._m;
|
|
77
|
+
const o = other.m;
|
|
78
|
+
const r = result.m;
|
|
79
|
+
r[0] = m[0] - o[0];
|
|
80
|
+
r[1] = m[1] - o[1];
|
|
81
|
+
r[2] = m[2] - o[2];
|
|
82
|
+
r[3] = m[3] - o[3];
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
subtract(other) {
|
|
86
|
+
return this.subtractToRef(other, new FlowGraphMatrix2D());
|
|
87
|
+
}
|
|
88
|
+
transpose() {
|
|
89
|
+
const m = this._m;
|
|
90
|
+
return new FlowGraphMatrix2D([m[0], m[2], m[1], m[3]]);
|
|
91
|
+
}
|
|
92
|
+
determinant() {
|
|
93
|
+
const m = this._m;
|
|
94
|
+
return m[0] * m[3] - m[1] * m[2];
|
|
95
|
+
}
|
|
96
|
+
inverse() {
|
|
97
|
+
const det = this.determinant();
|
|
98
|
+
if (det === 0) {
|
|
99
|
+
throw new Error("Matrix is not invertible");
|
|
100
|
+
}
|
|
101
|
+
const m = this._m;
|
|
102
|
+
const invDet = 1 / det;
|
|
103
|
+
return new FlowGraphMatrix2D([m[3] * invDet, -m[1] * invDet, -m[2] * invDet, m[0] * invDet]);
|
|
104
|
+
}
|
|
105
|
+
equals(other, epsilon = 0) {
|
|
106
|
+
const m = this._m;
|
|
107
|
+
const o = other.m;
|
|
108
|
+
if (epsilon === 0) {
|
|
109
|
+
return m[0] === o[0] && m[1] === o[1] && m[2] === o[2] && m[3] === o[3];
|
|
110
|
+
}
|
|
111
|
+
return Math.abs(m[0] - o[0]) < epsilon && Math.abs(m[1] - o[1]) < epsilon && Math.abs(m[2] - o[2]) < epsilon && Math.abs(m[3] - o[3]) < epsilon;
|
|
112
|
+
}
|
|
113
|
+
getClassName() {
|
|
114
|
+
return "FlowGraphMatrix2D";
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* A 3x3 matrix.
|
|
119
|
+
*/
|
|
120
|
+
export class FlowGraphMatrix3D {
|
|
121
|
+
constructor(array = [1, 0, 0, 0, 1, 0, 0, 0, 1]) {
|
|
122
|
+
this._m = array;
|
|
123
|
+
}
|
|
124
|
+
get m() {
|
|
125
|
+
return this._m;
|
|
126
|
+
}
|
|
127
|
+
transformVector(v) {
|
|
128
|
+
return this.transformVectorToRef(v, new Vector3());
|
|
129
|
+
}
|
|
130
|
+
transformVectorToRef(v, result) {
|
|
131
|
+
const m = this._m;
|
|
132
|
+
result.x = v.x * m[0] + v.y * m[1] + v.z * m[2];
|
|
133
|
+
result.y = v.x * m[3] + v.y * m[4] + v.z * m[5];
|
|
134
|
+
result.z = v.x * m[6] + v.y * m[7] + v.z * m[8];
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
multiplyToRef(other, result) {
|
|
138
|
+
const m = this._m;
|
|
139
|
+
const o = other.m;
|
|
140
|
+
const r = result.m;
|
|
141
|
+
r[0] = m[0] * o[0] + m[1] * o[3] + m[2] * o[6];
|
|
142
|
+
r[1] = m[0] * o[1] + m[1] * o[4] + m[2] * o[7];
|
|
143
|
+
r[2] = m[0] * o[2] + m[1] * o[5] + m[2] * o[8];
|
|
144
|
+
r[3] = m[3] * o[0] + m[4] * o[3] + m[5] * o[6];
|
|
145
|
+
r[4] = m[3] * o[1] + m[4] * o[4] + m[5] * o[7];
|
|
146
|
+
r[5] = m[3] * o[2] + m[4] * o[5] + m[5] * o[8];
|
|
147
|
+
r[6] = m[6] * o[0] + m[7] * o[3] + m[8] * o[6];
|
|
148
|
+
r[7] = m[6] * o[1] + m[7] * o[4] + m[8] * o[7];
|
|
149
|
+
r[8] = m[6] * o[2] + m[7] * o[5] + m[8] * o[8];
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
multiply(other) {
|
|
153
|
+
return this.multiplyToRef(other, new FlowGraphMatrix3D());
|
|
154
|
+
}
|
|
155
|
+
divideToRef(other, result) {
|
|
156
|
+
const m = this._m;
|
|
157
|
+
const o = other.m;
|
|
158
|
+
const r = result.m;
|
|
159
|
+
r[0] = m[0] / o[0];
|
|
160
|
+
r[1] = m[1] / o[1];
|
|
161
|
+
r[2] = m[2] / o[2];
|
|
162
|
+
r[3] = m[3] / o[3];
|
|
163
|
+
r[4] = m[4] / o[4];
|
|
164
|
+
r[5] = m[5] / o[5];
|
|
165
|
+
r[6] = m[6] / o[6];
|
|
166
|
+
r[7] = m[7] / o[7];
|
|
167
|
+
r[8] = m[8] / o[8];
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
divide(other) {
|
|
171
|
+
return this.divideToRef(other, new FlowGraphMatrix3D());
|
|
172
|
+
}
|
|
173
|
+
addToRef(other, result) {
|
|
174
|
+
const m = this._m;
|
|
175
|
+
const o = other.m;
|
|
176
|
+
const r = result.m;
|
|
177
|
+
r[0] = m[0] + o[0];
|
|
178
|
+
r[1] = m[1] + o[1];
|
|
179
|
+
r[2] = m[2] + o[2];
|
|
180
|
+
r[3] = m[3] + o[3];
|
|
181
|
+
r[4] = m[4] + o[4];
|
|
182
|
+
r[5] = m[5] + o[5];
|
|
183
|
+
r[6] = m[6] + o[6];
|
|
184
|
+
r[7] = m[7] + o[7];
|
|
185
|
+
r[8] = m[8] + o[8];
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
add(other) {
|
|
189
|
+
return this.addToRef(other, new FlowGraphMatrix3D());
|
|
190
|
+
}
|
|
191
|
+
subtractToRef(other, result) {
|
|
192
|
+
const m = this._m;
|
|
193
|
+
const o = other.m;
|
|
194
|
+
const r = result.m;
|
|
195
|
+
r[0] = m[0] - o[0];
|
|
196
|
+
r[1] = m[1] - o[1];
|
|
197
|
+
r[2] = m[2] - o[2];
|
|
198
|
+
r[3] = m[3] - o[3];
|
|
199
|
+
r[4] = m[4] - o[4];
|
|
200
|
+
r[5] = m[5] - o[5];
|
|
201
|
+
r[6] = m[6] - o[6];
|
|
202
|
+
r[7] = m[7] - o[7];
|
|
203
|
+
r[8] = m[8] - o[8];
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
206
|
+
subtract(other) {
|
|
207
|
+
return this.subtractToRef(other, new FlowGraphMatrix3D());
|
|
208
|
+
}
|
|
209
|
+
toArray(emptyArray = []) {
|
|
210
|
+
for (let i = 0; i < 9; i++) {
|
|
211
|
+
emptyArray[i] = this._m[i];
|
|
212
|
+
}
|
|
213
|
+
return emptyArray;
|
|
214
|
+
}
|
|
215
|
+
asArray() {
|
|
216
|
+
return this.toArray();
|
|
217
|
+
}
|
|
218
|
+
fromArray(array) {
|
|
219
|
+
for (let i = 0; i < 9; i++) {
|
|
220
|
+
this._m[i] = array[i];
|
|
221
|
+
}
|
|
222
|
+
return this;
|
|
223
|
+
}
|
|
224
|
+
transpose() {
|
|
225
|
+
const m = this._m;
|
|
226
|
+
return new FlowGraphMatrix3D([m[0], m[3], m[6], m[1], m[4], m[7], m[2], m[5], m[8]]);
|
|
227
|
+
}
|
|
228
|
+
determinant() {
|
|
229
|
+
const m = this._m;
|
|
230
|
+
return m[0] * (m[4] * m[8] - m[5] * m[7]) - m[1] * (m[3] * m[8] - m[5] * m[6]) + m[2] * (m[3] * m[7] - m[4] * m[6]);
|
|
231
|
+
}
|
|
232
|
+
inverse() {
|
|
233
|
+
const det = this.determinant();
|
|
234
|
+
if (det === 0) {
|
|
235
|
+
throw new Error("Matrix is not invertible");
|
|
236
|
+
}
|
|
237
|
+
const m = this._m;
|
|
238
|
+
const invDet = 1 / det;
|
|
239
|
+
return new FlowGraphMatrix3D([
|
|
240
|
+
(m[4] * m[8] - m[5] * m[7]) * invDet,
|
|
241
|
+
(m[2] * m[7] - m[1] * m[8]) * invDet,
|
|
242
|
+
(m[1] * m[5] - m[2] * m[4]) * invDet,
|
|
243
|
+
(m[5] * m[6] - m[3] * m[8]) * invDet,
|
|
244
|
+
(m[0] * m[8] - m[2] * m[6]) * invDet,
|
|
245
|
+
(m[2] * m[3] - m[0] * m[5]) * invDet,
|
|
246
|
+
(m[3] * m[7] - m[4] * m[6]) * invDet,
|
|
247
|
+
(m[1] * m[6] - m[0] * m[7]) * invDet,
|
|
248
|
+
(m[0] * m[4] - m[1] * m[3]) * invDet,
|
|
249
|
+
]);
|
|
250
|
+
}
|
|
251
|
+
equals(other, epsilon = 0) {
|
|
252
|
+
const m = this._m;
|
|
253
|
+
const o = other.m;
|
|
254
|
+
// performance shortcut
|
|
255
|
+
if (epsilon === 0) {
|
|
256
|
+
return m[0] === o[0] && m[1] === o[1] && m[2] === o[2] && m[3] === o[3] && m[4] === o[4] && m[5] === o[5] && m[6] === o[6] && m[7] === o[7] && m[8] === o[8];
|
|
257
|
+
}
|
|
258
|
+
return (Math.abs(m[0] - o[0]) < epsilon &&
|
|
259
|
+
Math.abs(m[1] - o[1]) < epsilon &&
|
|
260
|
+
Math.abs(m[2] - o[2]) < epsilon &&
|
|
261
|
+
Math.abs(m[3] - o[3]) < epsilon &&
|
|
262
|
+
Math.abs(m[4] - o[4]) < epsilon &&
|
|
263
|
+
Math.abs(m[5] - o[5]) < epsilon &&
|
|
264
|
+
Math.abs(m[6] - o[6]) < epsilon &&
|
|
265
|
+
Math.abs(m[7] - o[7]) < epsilon &&
|
|
266
|
+
Math.abs(m[8] - o[8]) < epsilon);
|
|
267
|
+
}
|
|
268
|
+
getClassName() {
|
|
269
|
+
return "FlowGraphMatrix3D";
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=flowGraphMatrix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowGraphMatrix.js","sourceRoot":"","sources":["../../../../../dev/core/src/FlowGraph/CustomTypes/flowGraphMatrix.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector3, Vector2 } from \"core/Maths/math.vector\";\n\n/**\n * Interface representing a generic flow graph matrix.\n */\nexport interface IFlowGraphMatrix<VectorType> {\n /**\n * The matrix elements stored in a row-major order.\n */\n m: number[];\n\n /**\n * Transforms a vector using this matrix.\n *\n * @param v - The vector to transform.\n * @returns The transformed vector.\n */\n transformVector(v: VectorType): VectorType;\n\n /**\n * Transforms a vector using this matrix and stores the result in a reference vector.\n *\n * @param v - The vector to transform.\n * @param result - The vector to store the result.\n * @returns The transformed vector.\n */\n transformVectorToRef(v: VectorType, result: VectorType): VectorType;\n\n /**\n * Returns the matrix elements as an array.\n *\n * @returns The matrix elements as an array.\n */\n asArray(): number[];\n\n /**\n * Copies the matrix elements to an array.\n *\n * @param emptyArray - The array to copy the elements to.\n * @returns The array with the matrix elements.\n */\n toArray(emptyArray: number[]): number[];\n\n /**\n * Sets the matrix elements from an array.\n *\n * @param array - The array containing the matrix elements.\n * @returns The updated matrix.\n */\n fromArray(array: number[]): IFlowGraphMatrix<VectorType>;\n\n /**\n * Multiplies this matrix with another matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to multiply with.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n multiplyToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Multiplies this matrix with another matrix.\n *\n * @param other - The matrix to multiply with.\n * @returns The result matrix.\n */\n multiply(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Divides this matrix by another matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to divide by.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n divideToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Divides this matrix by another matrix.\n *\n * @param other - The matrix to divide by.\n * @returns The result matrix.\n */\n divide(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Adds another matrix to this matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to add.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n addToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Adds another matrix to this matrix.\n *\n * @param other - The matrix to add.\n * @returns The result matrix.\n */\n add(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Subtracts another matrix from this matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to subtract.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n subtractToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Subtracts another matrix from this matrix.\n *\n * @param other - The matrix to subtract.\n * @returns The result matrix.\n */\n subtract(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Transposes this matrix.\n *\n * @returns The transposed matrix.\n */\n transpose(): IFlowGraphMatrix<VectorType>;\n\n /**\n * Computes the determinant of this matrix.\n *\n * @returns The determinant of the matrix.\n */\n determinant(): number;\n\n /**\n * Computes the inverse of this matrix.\n *\n * @returns The inverse of the matrix.\n * @throws Error if the matrix is not invertible.\n */\n inverse(): IFlowGraphMatrix<VectorType>;\n\n /**\n * Gets the class name of this matrix.\n *\n * @returns The class name.\n */\n getClassName(): string;\n\n /**\n * Checks if this matrix is equal to another matrix within an optional epsilon.\n *\n * @param other - The matrix to compare with.\n * @param epsilon - The optional epsilon for comparison.\n * @returns True if the matrices are equal, false otherwise.\n */\n equals(other: IFlowGraphMatrix<VectorType>, epsilon?: number): boolean;\n}\n\n// Note - the matrix classes are basically column-major, and work similarly to Babylon.js' Matrix class.\n\n/**\n * A 2x2 matrix.\n */\nexport class FlowGraphMatrix2D implements IFlowGraphMatrix<Vector2> {\n /**\n * @internal\n */\n public _m: number[];\n\n constructor(m: number[] = [1, 0, 0, 1]) {\n this._m = m;\n }\n\n public get m(): number[] {\n return this._m;\n }\n\n public transformVector(v: Vector2): Vector2 {\n return this.transformVectorToRef(v, new Vector2());\n }\n\n public transformVectorToRef(v: Vector2, result: Vector2): Vector2 {\n result.x = v.x * this._m[0] + v.y * this._m[1];\n result.y = v.x * this._m[2] + v.y * this._m[3];\n return result;\n }\n\n public asArray(): number[] {\n return this.toArray();\n }\n\n public toArray(emptyArray: number[] = []): number[] {\n for (let i = 0; i < 4; i++) {\n emptyArray[i] = this._m[i];\n }\n return emptyArray;\n }\n\n public fromArray(array: number[]): FlowGraphMatrix2D {\n for (let i = 0; i < 4; i++) {\n this._m[i] = array[i];\n }\n return this;\n }\n\n public multiplyToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other._m;\n const r = result._m;\n\n r[0] = m[0] * o[0] + m[1] * o[2];\n r[1] = m[0] * o[1] + m[1] * o[3];\n r[2] = m[2] * o[0] + m[3] * o[2];\n r[3] = m[2] * o[1] + m[3] * o[3];\n\n return result;\n }\n\n public multiply(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.multiplyToRef(other, new FlowGraphMatrix2D());\n }\n\n public divideToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other._m;\n const r = result._m;\n\n r[0] = m[0] / o[0];\n r[1] = m[1] / o[1];\n r[2] = m[2] / o[2];\n r[3] = m[3] / o[3];\n\n return result;\n }\n\n public divide(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.divideToRef(other, new FlowGraphMatrix2D());\n }\n\n public addToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] + o[0];\n r[1] = m[1] + o[1];\n r[2] = m[2] + o[2];\n r[3] = m[3] + o[3];\n\n return result;\n }\n\n public add(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.addToRef(other, new FlowGraphMatrix2D());\n }\n\n public subtractToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] - o[0];\n r[1] = m[1] - o[1];\n r[2] = m[2] - o[2];\n r[3] = m[3] - o[3];\n\n return result;\n }\n\n public subtract(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.subtractToRef(other, new FlowGraphMatrix2D());\n }\n\n public transpose(): FlowGraphMatrix2D {\n const m = this._m;\n return new FlowGraphMatrix2D([m[0], m[2], m[1], m[3]]);\n }\n\n public determinant(): number {\n const m = this._m;\n return m[0] * m[3] - m[1] * m[2];\n }\n\n public inverse(): FlowGraphMatrix2D {\n const det = this.determinant();\n if (det === 0) {\n throw new Error(\"Matrix is not invertible\");\n }\n const m = this._m;\n const invDet = 1 / det;\n return new FlowGraphMatrix2D([m[3] * invDet, -m[1] * invDet, -m[2] * invDet, m[0] * invDet]);\n }\n\n public equals(other: IFlowGraphMatrix<Vector2>, epsilon: number = 0): boolean {\n const m = this._m;\n const o = other.m;\n if (epsilon === 0) {\n return m[0] === o[0] && m[1] === o[1] && m[2] === o[2] && m[3] === o[3];\n }\n return Math.abs(m[0] - o[0]) < epsilon && Math.abs(m[1] - o[1]) < epsilon && Math.abs(m[2] - o[2]) < epsilon && Math.abs(m[3] - o[3]) < epsilon;\n }\n\n public getClassName(): string {\n return \"FlowGraphMatrix2D\";\n }\n}\n\n/**\n * A 3x3 matrix.\n */\nexport class FlowGraphMatrix3D implements IFlowGraphMatrix<Vector3> {\n /**\n * @internal\n */\n public _m: number[];\n\n constructor(array: number[] = [1, 0, 0, 0, 1, 0, 0, 0, 1]) {\n this._m = array;\n }\n\n public get m(): number[] {\n return this._m;\n }\n\n public transformVector(v: Vector3): Vector3 {\n return this.transformVectorToRef(v, new Vector3());\n }\n\n public transformVectorToRef(v: Vector3, result: Vector3): Vector3 {\n const m = this._m;\n result.x = v.x * m[0] + v.y * m[1] + v.z * m[2];\n result.y = v.x * m[3] + v.y * m[4] + v.z * m[5];\n result.z = v.x * m[6] + v.y * m[7] + v.z * m[8];\n return result;\n }\n\n public multiplyToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] * o[0] + m[1] * o[3] + m[2] * o[6];\n r[1] = m[0] * o[1] + m[1] * o[4] + m[2] * o[7];\n r[2] = m[0] * o[2] + m[1] * o[5] + m[2] * o[8];\n\n r[3] = m[3] * o[0] + m[4] * o[3] + m[5] * o[6];\n r[4] = m[3] * o[1] + m[4] * o[4] + m[5] * o[7];\n r[5] = m[3] * o[2] + m[4] * o[5] + m[5] * o[8];\n\n r[6] = m[6] * o[0] + m[7] * o[3] + m[8] * o[6];\n r[7] = m[6] * o[1] + m[7] * o[4] + m[8] * o[7];\n r[8] = m[6] * o[2] + m[7] * o[5] + m[8] * o[8];\n\n return result;\n }\n\n public multiply(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.multiplyToRef(other, new FlowGraphMatrix3D());\n }\n\n public divideToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] / o[0];\n r[1] = m[1] / o[1];\n r[2] = m[2] / o[2];\n r[3] = m[3] / o[3];\n r[4] = m[4] / o[4];\n r[5] = m[5] / o[5];\n r[6] = m[6] / o[6];\n r[7] = m[7] / o[7];\n r[8] = m[8] / o[8];\n\n return result;\n }\n\n public divide(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.divideToRef(other, new FlowGraphMatrix3D());\n }\n\n public addToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] + o[0];\n r[1] = m[1] + o[1];\n r[2] = m[2] + o[2];\n r[3] = m[3] + o[3];\n r[4] = m[4] + o[4];\n r[5] = m[5] + o[5];\n r[6] = m[6] + o[6];\n r[7] = m[7] + o[7];\n r[8] = m[8] + o[8];\n\n return result;\n }\n\n public add(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.addToRef(other, new FlowGraphMatrix3D());\n }\n\n public subtractToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] - o[0];\n r[1] = m[1] - o[1];\n r[2] = m[2] - o[2];\n r[3] = m[3] - o[3];\n r[4] = m[4] - o[4];\n r[5] = m[5] - o[5];\n r[6] = m[6] - o[6];\n r[7] = m[7] - o[7];\n r[8] = m[8] - o[8];\n\n return result;\n }\n\n public subtract(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.subtractToRef(other, new FlowGraphMatrix3D());\n }\n\n public toArray(emptyArray: number[] = []): number[] {\n for (let i = 0; i < 9; i++) {\n emptyArray[i] = this._m[i];\n }\n return emptyArray;\n }\n\n public asArray(): number[] {\n return this.toArray();\n }\n\n public fromArray(array: number[]): FlowGraphMatrix3D {\n for (let i = 0; i < 9; i++) {\n this._m[i] = array[i];\n }\n return this;\n }\n\n public transpose(): FlowGraphMatrix3D {\n const m = this._m;\n return new FlowGraphMatrix3D([m[0], m[3], m[6], m[1], m[4], m[7], m[2], m[5], m[8]]);\n }\n\n public determinant(): number {\n const m = this._m;\n return m[0] * (m[4] * m[8] - m[5] * m[7]) - m[1] * (m[3] * m[8] - m[5] * m[6]) + m[2] * (m[3] * m[7] - m[4] * m[6]);\n }\n\n public inverse(): FlowGraphMatrix3D {\n const det = this.determinant();\n if (det === 0) {\n throw new Error(\"Matrix is not invertible\");\n }\n const m = this._m;\n const invDet = 1 / det;\n return new FlowGraphMatrix3D([\n (m[4] * m[8] - m[5] * m[7]) * invDet,\n (m[2] * m[7] - m[1] * m[8]) * invDet,\n (m[1] * m[5] - m[2] * m[4]) * invDet,\n (m[5] * m[6] - m[3] * m[8]) * invDet,\n (m[0] * m[8] - m[2] * m[6]) * invDet,\n (m[2] * m[3] - m[0] * m[5]) * invDet,\n (m[3] * m[7] - m[4] * m[6]) * invDet,\n (m[1] * m[6] - m[0] * m[7]) * invDet,\n (m[0] * m[4] - m[1] * m[3]) * invDet,\n ]);\n }\n\n public equals(other: IFlowGraphMatrix<Vector3>, epsilon: number = 0): boolean {\n const m = this._m;\n const o = other.m;\n // performance shortcut\n if (epsilon === 0) {\n return m[0] === o[0] && m[1] === o[1] && m[2] === o[2] && m[3] === o[3] && m[4] === o[4] && m[5] === o[5] && m[6] === o[6] && m[7] === o[7] && m[8] === o[8];\n }\n return (\n Math.abs(m[0] - o[0]) < epsilon &&\n Math.abs(m[1] - o[1]) < epsilon &&\n Math.abs(m[2] - o[2]) < epsilon &&\n Math.abs(m[3] - o[3]) < epsilon &&\n Math.abs(m[4] - o[4]) < epsilon &&\n Math.abs(m[5] - o[5]) < epsilon &&\n Math.abs(m[6] - o[6]) < epsilon &&\n Math.abs(m[7] - o[7]) < epsilon &&\n Math.abs(m[8] - o[8]) < epsilon\n );\n }\n\n public getClassName(): string {\n return \"FlowGraphMatrix3D\";\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../dev/core/src/FlowGraph/CustomTypes/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from \"./flowGraphInteger\";\nexport * from \"./flowGraphMatrix\";\n"]}
|
package/FlowGraph/flowGraph.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { Observable } from "../Misc/observable";
|
|
1
2
|
import type { Scene } from "../scene";
|
|
2
|
-
import { FlowGraphEventBlock } from "./flowGraphEventBlock";
|
|
3
|
+
import type { FlowGraphEventBlock } from "./flowGraphEventBlock";
|
|
3
4
|
import { FlowGraphContext } from "./flowGraphContext";
|
|
4
|
-
import { FlowGraphBlock } from "./flowGraphBlock";
|
|
5
|
+
import type { FlowGraphBlock } from "./flowGraphBlock";
|
|
5
6
|
import type { FlowGraphCoordinator } from "./flowGraphCoordinator";
|
|
6
|
-
import type {
|
|
7
|
-
import type { FlowGraphDataConnection } from "./flowGraphDataConnection";
|
|
8
|
-
import type { ISerializedFlowGraph, IObjectAccessor } from "./typeDefinitions";
|
|
7
|
+
import type { IObjectAccessor } from "./typeDefinitions";
|
|
9
8
|
import type { IPathToObjectConverter } from "../ObjectModel/objectModelInterfaces";
|
|
9
|
+
import type { IAssetContainer } from "../IAssetContainer.js";
|
|
10
|
+
import { FlowGraphEventType } from "./flowGraphEventType";
|
|
10
11
|
export declare enum FlowGraphState {
|
|
11
12
|
/**
|
|
12
13
|
* The graph is stopped
|
|
@@ -18,7 +19,6 @@ export declare enum FlowGraphState {
|
|
|
18
19
|
Started = 1
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
|
-
* @experimental
|
|
22
22
|
* Parameters used to create a flow graph.
|
|
23
23
|
*/
|
|
24
24
|
export interface IFlowGraphParams {
|
|
@@ -32,7 +32,6 @@ export interface IFlowGraphParams {
|
|
|
32
32
|
coordinator: FlowGraphCoordinator;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
|
-
* @experimental
|
|
36
35
|
* Options for parsing a flow graph.
|
|
37
36
|
*/
|
|
38
37
|
export interface IFlowGraphParseOptions {
|
|
@@ -42,7 +41,7 @@ export interface IFlowGraphParseOptions {
|
|
|
42
41
|
* @param serializationObject the object to read the value from
|
|
43
42
|
* @param scene the scene to read the value from
|
|
44
43
|
*/
|
|
45
|
-
valueParseFunction?: (key: string, serializationObject: any, scene: Scene) => any;
|
|
44
|
+
valueParseFunction?: (key: string, serializationObject: any, assetsContainer: IAssetContainer, scene: Scene) => any;
|
|
46
45
|
/**
|
|
47
46
|
* The flow graph coordinator.
|
|
48
47
|
*/
|
|
@@ -50,29 +49,45 @@ export interface IFlowGraphParseOptions {
|
|
|
50
49
|
/**
|
|
51
50
|
* A function that converts a path to an object accessor.
|
|
52
51
|
*/
|
|
53
|
-
pathConverter
|
|
52
|
+
pathConverter?: IPathToObjectConverter<IObjectAccessor>;
|
|
54
53
|
}
|
|
55
54
|
/**
|
|
56
|
-
* @experimental
|
|
57
55
|
* Class used to represent a flow graph.
|
|
58
56
|
* A flow graph is a graph of blocks that can be used to create complex logic.
|
|
59
57
|
* Blocks can be added to the graph and connected to each other.
|
|
60
58
|
* The graph can then be started, which will init and start all of its event blocks.
|
|
59
|
+
*
|
|
60
|
+
* @experimental FlowGraph is still in development and is subject to change.
|
|
61
61
|
*/
|
|
62
62
|
export declare class FlowGraph {
|
|
63
|
+
/**
|
|
64
|
+
* An observable that is triggered when the state of the graph changes.
|
|
65
|
+
*/
|
|
66
|
+
onStateChangedObservable: Observable<FlowGraphState>;
|
|
63
67
|
/** @internal */
|
|
64
|
-
_eventBlocks:
|
|
65
|
-
|
|
68
|
+
_eventBlocks: {
|
|
69
|
+
[keyof in FlowGraphEventType]: FlowGraphEventBlock[];
|
|
70
|
+
};
|
|
66
71
|
/**
|
|
67
72
|
* @internal
|
|
68
73
|
*/
|
|
69
74
|
readonly _scene: Scene;
|
|
70
75
|
private _coordinator;
|
|
71
76
|
private _executionContexts;
|
|
77
|
+
private _sceneEventCoordinator;
|
|
78
|
+
private _eventObserver;
|
|
79
|
+
/**
|
|
80
|
+
* The state of the graph
|
|
81
|
+
*/
|
|
82
|
+
private _state;
|
|
83
|
+
/**
|
|
84
|
+
* The state of the graph
|
|
85
|
+
*/
|
|
86
|
+
get state(): FlowGraphState;
|
|
72
87
|
/**
|
|
73
88
|
* The state of the graph
|
|
74
89
|
*/
|
|
75
|
-
state: FlowGraphState;
|
|
90
|
+
set state(value: FlowGraphState);
|
|
76
91
|
/**
|
|
77
92
|
* Construct a Flow Graph
|
|
78
93
|
* @param params construction parameters. currently only the scene
|
|
@@ -99,6 +114,7 @@ export declare class FlowGraph {
|
|
|
99
114
|
* Starts the flow graph. Initializes the event blocks and starts listening to events.
|
|
100
115
|
*/
|
|
101
116
|
start(): void;
|
|
117
|
+
private _startPendingEvents;
|
|
102
118
|
private _getContextualOrder;
|
|
103
119
|
/**
|
|
104
120
|
* Disposes of the flow graph. Cancels any pending tasks and removes all event listeners.
|
|
@@ -115,25 +131,4 @@ export declare class FlowGraph {
|
|
|
115
131
|
* @param valueSerializeFunction a function to serialize complex values
|
|
116
132
|
*/
|
|
117
133
|
serialize(serializationObject?: any, valueSerializeFunction?: (key: string, value: any, serializationObject: any) => void): void;
|
|
118
|
-
/**
|
|
119
|
-
* Given a list of blocks, find an output data connection that has a specific unique id
|
|
120
|
-
* @param blocks a list of flow graph blocks
|
|
121
|
-
* @param uniqueId the unique id of a connection
|
|
122
|
-
* @returns the connection that has this unique id. throws an error if none was found
|
|
123
|
-
*/
|
|
124
|
-
static GetDataOutConnectionByUniqueId(blocks: FlowGraphBlock[], uniqueId: string): FlowGraphDataConnection<any>;
|
|
125
|
-
/**
|
|
126
|
-
* Given a list of blocks, find an input signal connection that has a specific unique id
|
|
127
|
-
* @param blocks a list of flow graph blocks
|
|
128
|
-
* @param uniqueId the unique id of a connection
|
|
129
|
-
* @returns the connection that has this unique id. throws an error if none was found
|
|
130
|
-
*/
|
|
131
|
-
static GetSignalInConnectionByUniqueId(blocks: FlowGraphBlock[], uniqueId: string): FlowGraphSignalConnection;
|
|
132
|
-
/**
|
|
133
|
-
* Parses a graph from a given serialization object
|
|
134
|
-
* @param serializationObject the object where the values are written
|
|
135
|
-
* @param options options for parsing the graph
|
|
136
|
-
* @returns the parsed graph
|
|
137
|
-
*/
|
|
138
|
-
static Parse(serializationObject: ISerializedFlowGraph, options: IFlowGraphParseOptions): FlowGraph;
|
|
139
134
|
}
|