@onerjs/core 8.54.4 → 8.54.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Engines/Native/nativeHelpers.js +5 -0
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.pure.js +1 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.pure.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.rawTexture.pure.js +2 -2
- package/Engines/WebGPU/Extensions/engine.rawTexture.pure.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -0
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +18 -4
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheTextureView.d.ts +13 -0
- package/Engines/WebGPU/webgpuCacheTextureView.js +32 -0
- package/Engines/WebGPU/webgpuCacheTextureView.js.map +1 -0
- package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +10 -0
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js +10 -0
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.pure.js +57 -4
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.pure.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureManager.js +4 -2
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.pure.js +2 -2
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/engineCapabilities.d.ts +5 -0
- package/Engines/engineCapabilities.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +5 -0
- package/Engines/thinNativeEngine.pure.js +52 -10
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +1 -0
- package/Engines/webgpuEngine.pure.js +22 -8
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.d.ts +95 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js +169 -4
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.pure.d.ts +21 -6
- package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.pure.js +28 -26
- package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.pure.d.ts +30 -2
- package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.pure.js +111 -29
- package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.pure.d.ts +56 -2
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.pure.js +99 -14
- package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js +10 -2
- package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js +21 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +18 -0
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +29 -2
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.d.ts +15 -0
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js +44 -7
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.d.ts +9 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js +9 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.d.ts +7 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js +8 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.d.ts +5 -0
- package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.js +8 -0
- package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.js.map +1 -0
- package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.pure.d.ts +37 -0
- package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.pure.js +44 -0
- package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.pure.js.map +1 -0
- package/FlowGraph/Blocks/Event/index.d.ts +1 -0
- package/FlowGraph/Blocks/Event/index.js +1 -0
- package/FlowGraph/Blocks/Event/index.js.map +1 -1
- package/FlowGraph/Blocks/Event/pure.d.ts +1 -0
- package/FlowGraph/Blocks/Event/pure.js +1 -0
- package/FlowGraph/Blocks/Event/pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.pure.d.ts +4 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.pure.js +67 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.d.ts +13 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js +102 -7
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js +5 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.d.ts +11 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js +21 -3
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.pure.js +25 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.pure.js.map +1 -1
- package/FlowGraph/Blocks/flowGraphBlockFactory.js +18 -0
- package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -1
- package/FlowGraph/Blocks/flowGraphBlockNames.d.ts +9 -0
- package/FlowGraph/Blocks/flowGraphBlockNames.js +9 -0
- package/FlowGraph/Blocks/flowGraphBlockNames.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +17 -3
- package/FlowGraph/CustomTypes/flowGraphMatrix.js +27 -21
- package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
- package/FlowGraph/flowGraphContext.d.ts +23 -0
- package/FlowGraph/flowGraphContext.js +29 -0
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.d.ts +58 -1
- package/FlowGraph/flowGraphCoordinator.js +72 -0
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphDelayRegistry.d.ts +31 -0
- package/FlowGraph/flowGraphDelayRegistry.js +50 -0
- package/FlowGraph/flowGraphDelayRegistry.js.map +1 -0
- package/FlowGraph/flowGraphHostResolver.d.ts +69 -0
- package/FlowGraph/flowGraphHostResolver.js +25 -0
- package/FlowGraph/flowGraphHostResolver.js.map +1 -0
- package/FlowGraph/flowGraphMath.d.ts +48 -1
- package/FlowGraph/flowGraphMath.js +169 -4
- package/FlowGraph/flowGraphMath.js.map +1 -1
- package/FlowGraph/flowGraphPathConverterComponent.d.ts +14 -3
- package/FlowGraph/flowGraphPathConverterComponent.js +110 -18
- package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
- package/FlowGraph/flowGraphSignalConnection.pure.js +7 -1
- package/FlowGraph/flowGraphSignalConnection.pure.js.map +1 -1
- package/FlowGraph/index.d.ts +2 -0
- package/FlowGraph/index.js +2 -0
- package/FlowGraph/index.js.map +1 -1
- package/FlowGraph/pure.d.ts +2 -0
- package/FlowGraph/pure.js +2 -0
- package/FlowGraph/pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.d.ts +3 -1
- package/Materials/Node/nodeMaterial.pure.js +18 -1
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Textures/envCubeTexture.pure.js +7 -2
- package/Materials/Textures/envCubeTexture.pure.js.map +1 -1
- package/Materials/materialHelper.functions.d.ts +14 -0
- package/Materials/materialHelper.functions.js +67 -0
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Maths/math.vector.pure.d.ts +11 -1
- package/Maths/math.vector.pure.js +13 -0
- package/Maths/math.vector.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +216 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +714 -67
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +81 -4
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +466 -52
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.pure.d.ts +19 -0
- package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.pure.js +24 -0
- package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +31 -6
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +5 -1
- package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +1 -0
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/mesh.pure.js +5 -0
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/transformNode.pure.js +1 -0
- package/Meshes/transformNode.pure.js.map +1 -1
- package/Misc/areaLightsTextureTools.js +1 -1
- package/Misc/areaLightsTextureTools.js.map +1 -1
- package/Misc/greasedLineTools.js +1 -1
- package/Misc/greasedLineTools.js.map +1 -1
- package/Misc/tools.pure.js +14 -2
- package/Misc/tools.pure.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +66 -1
- package/Particles/gpuParticleSystem.pure.js +189 -49
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Physics/v2/characterController.js +69 -17
- package/Physics/v2/characterController.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/fsr1RenderingPipeline.d.ts +79 -0
- package/PostProcesses/RenderPipeline/Pipelines/fsr1RenderingPipeline.js +171 -0
- package/PostProcesses/RenderPipeline/Pipelines/fsr1RenderingPipeline.js.map +1 -0
- package/PostProcesses/RenderPipeline/Pipelines/index.d.ts +5 -0
- package/PostProcesses/RenderPipeline/Pipelines/index.js +6 -0
- package/PostProcesses/RenderPipeline/Pipelines/index.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/pure.d.ts +1 -0
- package/PostProcesses/RenderPipeline/Pipelines/pure.js +1 -0
- package/PostProcesses/RenderPipeline/Pipelines/pure.js.map +1 -1
- package/PostProcesses/thinFSR1SharpenPostProcess.d.ts +32 -0
- package/PostProcesses/thinFSR1SharpenPostProcess.js +58 -0
- package/PostProcesses/thinFSR1SharpenPostProcess.js.map +1 -0
- package/PostProcesses/thinFSR1UpscalePostProcess.d.ts +37 -0
- package/PostProcesses/thinFSR1UpscalePostProcess.js +68 -0
- package/PostProcesses/thinFSR1UpscalePostProcess.js.map +1 -0
- package/Shaders/ShadersInclude/ffxFunctions.d.ts +5 -0
- package/Shaders/ShadersInclude/ffxFunctions.js +18 -0
- package/Shaders/ShadersInclude/ffxFunctions.js.map +1 -0
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +2 -2
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrIblFunctions.js +1 -6
- package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/Shaders/fsr1Sharpen.fragment.d.ts +5 -0
- package/Shaders/fsr1Sharpen.fragment.js +26 -0
- package/Shaders/fsr1Sharpen.fragment.js.map +1 -0
- package/Shaders/fsr1Upscale.fragment.d.ts +5 -0
- package/Shaders/fsr1Upscale.fragment.js +77 -0
- package/Shaders/fsr1Upscale.fragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/ffxFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/ffxFunctions.js +18 -0
- package/ShadersWGSL/ShadersInclude/ffxFunctions.js.map +1 -0
- package/ShadersWGSL/fsr1Sharpen.fragment.d.ts +5 -0
- package/ShadersWGSL/fsr1Sharpen.fragment.js +34 -0
- package/ShadersWGSL/fsr1Sharpen.fragment.js.map +1 -0
- package/ShadersWGSL/fsr1Upscale.fragment.d.ts +5 -0
- package/ShadersWGSL/fsr1Upscale.fragment.js +68 -0
- package/ShadersWGSL/fsr1Upscale.fragment.js.map +1 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +3 -9
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +4 -11
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -1
- package/XR/features/WebXRAbstractFeature.d.ts +9 -0
- package/XR/features/WebXRAbstractFeature.js +16 -0
- package/XR/features/WebXRAbstractFeature.js.map +1 -1
- package/XR/features/WebXRDepthSensing.pure.d.ts +7 -0
- package/XR/features/WebXRDepthSensing.pure.js +350 -39
- package/XR/features/WebXRDepthSensing.pure.js.map +1 -1
- package/XR/features/WebXRImageTracking.pure.js.map +1 -1
- package/XR/features/WebXRLayers.pure.d.ts +6 -5
- package/XR/features/WebXRLayers.pure.js +65 -8
- package/XR/features/WebXRLayers.pure.js.map +1 -1
- package/XR/features/WebXRRawCameraAccess.pure.js +9 -2
- package/XR/features/WebXRRawCameraAccess.pure.js.map +1 -1
- package/XR/features/WebXRSpaceWarp.pure.d.ts +0 -1
- package/XR/features/WebXRSpaceWarp.pure.js +13 -4
- package/XR/features/WebXRSpaceWarp.pure.js.map +1 -1
- package/XR/features/WebXRWalkingLocomotion.pure.js.map +1 -1
- package/XR/webXRCamera.js +27 -0
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRFeatureWarningRegistry.d.ts +14 -0
- package/XR/webXRFeatureWarningRegistry.js +19 -0
- package/XR/webXRFeatureWarningRegistry.js.map +1 -0
- package/XR/webXRFeaturesManager.d.ts +5 -0
- package/XR/webXRFeaturesManager.js +23 -4
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRGraphicsBinding.d.ts +17 -10
- package/XR/webXRGraphicsBinding.js +8 -5
- package/XR/webXRGraphicsBinding.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +3 -5
- package/XR/webXRSessionManager.js +1 -3
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +21 -5
- package/XR/webXRWebGPURenderTargetTextureProvider.js +38 -10
- package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { FlowGraphExecutionBlockWithOutSignal } from "../../../flowGraphExecutio
|
|
|
3
3
|
import { RichTypeAny, RichTypeFlowGraphInteger, RichTypeNumber } from "../../../flowGraphRichTypes.pure.js";
|
|
4
4
|
import { getNumericValue } from "../../../utils.js";
|
|
5
5
|
import { FlowGraphInteger } from "../../../CustomTypes/flowGraphInteger.pure.js";
|
|
6
|
+
import { Logger } from "../../../../Misc/logger.js";
|
|
6
7
|
import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
7
8
|
/**
|
|
8
9
|
* Block that executes an action in a loop.
|
|
@@ -25,14 +26,28 @@ export class FlowGraphForLoopBlock extends FlowGraphExecutionBlockWithOutSignal
|
|
|
25
26
|
const index = getNumericValue(this.startIndex.getValue(context));
|
|
26
27
|
const step = this.step.getValue(context);
|
|
27
28
|
let endIndex = getNumericValue(this.endIndex.getValue(context));
|
|
29
|
+
// Per-block override of the runaway-loop guard, falling back to the process-wide default.
|
|
30
|
+
const maxIterations = this.config?.maxLoopIterations ?? FlowGraphForLoopBlock.MaxLoopIterations;
|
|
31
|
+
let iterations = 0;
|
|
32
|
+
let truncated = false;
|
|
28
33
|
for (let i = index; i < endIndex; i += step) {
|
|
29
34
|
this.index.setValue(new FlowGraphInteger(i), context);
|
|
30
35
|
this.executionFlow._activateSignal(context);
|
|
31
36
|
endIndex = getNumericValue(this.endIndex.getValue(context));
|
|
32
|
-
|
|
37
|
+
// Safety net against runaway loops. The cap counts iterations (not the index value) so it
|
|
38
|
+
// behaves correctly regardless of startIndex/step.
|
|
39
|
+
if (++iterations >= maxIterations) {
|
|
40
|
+
truncated = true;
|
|
33
41
|
break;
|
|
34
42
|
}
|
|
35
43
|
}
|
|
44
|
+
if (truncated) {
|
|
45
|
+
// The loop hit its safety cap before its range completed, so the outputs below are for a
|
|
46
|
+
// truncated run, not a natural finish. Warn so a genuinely runaway asset is diagnosable
|
|
47
|
+
// rather than silently producing wrong numbers (the completed signal still fires, and
|
|
48
|
+
// incrementIndexWhenLoopDone will not land on endIndex).
|
|
49
|
+
Logger.Warn(`FlowGraphForLoopBlock: loop stopped after reaching the ${maxIterations}-iteration safety cap before its range completed.`);
|
|
50
|
+
}
|
|
36
51
|
if (this.config?.incrementIndexWhenLoopDone) {
|
|
37
52
|
this.index.setValue(new FlowGraphInteger(getNumericValue(this.index.getValue(context)) + step), context);
|
|
38
53
|
}
|
|
@@ -46,8 +61,11 @@ export class FlowGraphForLoopBlock extends FlowGraphExecutionBlockWithOutSignal
|
|
|
46
61
|
}
|
|
47
62
|
}
|
|
48
63
|
/**
|
|
49
|
-
* The maximum number of iterations allowed for the loop
|
|
50
|
-
*
|
|
64
|
+
* The default maximum number of iterations allowed for the loop, used as a safety net against
|
|
65
|
+
* runaway loops. Kept conservative so a runaway loop is caught before it can freeze the tab.
|
|
66
|
+
* A single graph that legitimately needs more iterations should set the per-block
|
|
67
|
+
* {@link IFlowGraphForLoopBlockConfiguration.maxLoopIterations} rather than raising this
|
|
68
|
+
* process-wide default that every other FlowGraph relies on.
|
|
51
69
|
*/
|
|
52
70
|
FlowGraphForLoopBlock.MaxLoopIterations = 1000;
|
|
53
71
|
let _Registered = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphForLoopBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAI7D,OAAO,EAAE,oCAAoC,EAAE,MAAM,qDAAqD,CAAC;AAE3G,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGzG,OAAO,EAAwB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"flowGraphForLoopBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { type FlowGraphSignalConnection } from \"../../../flowGraphSignalConnection.pure\";\r\nimport { type FlowGraphDataConnection } from \"../../../flowGraphDataConnection.pure\";\r\nimport { FlowGraphExecutionBlockWithOutSignal } from \"core/FlowGraph/flowGraphExecutionBlockWithOutSignal\";\r\nimport { type FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport { RichTypeAny, RichTypeFlowGraphInteger, RichTypeNumber } from \"../../../flowGraphRichTypes.pure\";\r\nimport { type IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlockNames } from \"../../flowGraphBlockNames\";\r\nimport { type FlowGraphNumber, getNumericValue } from \"core/FlowGraph/utils\";\r\nimport { FlowGraphInteger } from \"core/FlowGraph/CustomTypes/flowGraphInteger.pure\";\r\nimport { Logger } from \"core/Misc/logger\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n\r\n/**\r\n * Configuration for the For Loop block.\r\n */\r\nexport interface IFlowGraphForLoopBlockConfiguration extends IFlowGraphBlockConfiguration {\r\n /**\r\n * The initial index of the loop.\r\n * if not set will default to 0\r\n */\r\n initialIndex?: FlowGraphNumber;\r\n\r\n /**\r\n * If set to true, the index of the case will be incremented when the loop is done.\r\n * This will result that the index will equal endIndex when the loop finished its work.\r\n * This is the default behavior in glTF interactivity\r\n */\r\n incrementIndexWhenLoopDone?: boolean;\r\n\r\n /**\r\n * Overrides {@link FlowGraphForLoopBlock.MaxLoopIterations} for this block only.\r\n * Lets a single graph opt into a higher (or lower) runaway-loop guard without changing the\r\n * process-wide default that every other FlowGraph relies on.\r\n */\r\n maxLoopIterations?: number;\r\n}\r\n/**\r\n * Block that executes an action in a loop.\r\n */\r\nexport class FlowGraphForLoopBlock extends FlowGraphExecutionBlockWithOutSignal {\r\n /**\r\n * The default maximum number of iterations allowed for the loop, used as a safety net against\r\n * runaway loops. Kept conservative so a runaway loop is caught before it can freeze the tab.\r\n * A single graph that legitimately needs more iterations should set the per-block\r\n * {@link IFlowGraphForLoopBlockConfiguration.maxLoopIterations} rather than raising this\r\n * process-wide default that every other FlowGraph relies on.\r\n */\r\n public static MaxLoopIterations = 1000;\r\n /**\r\n * Input connection: The start index of the loop.\r\n */\r\n public readonly startIndex: FlowGraphDataConnection<FlowGraphNumber>;\r\n /**\r\n * Input connection: The end index of the loop.\r\n */\r\n public readonly endIndex: FlowGraphDataConnection<FlowGraphNumber>;\r\n /**\r\n * Input connection: The step of the loop.\r\n */\r\n public readonly step: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The current index of the loop.\r\n */\r\n public readonly index: FlowGraphDataConnection<FlowGraphInteger>;\r\n /**\r\n * Output connection: The signal that is activated when the loop body is executed.\r\n */\r\n public readonly executionFlow: FlowGraphSignalConnection;\r\n\r\n /**\r\n * Output connection: The completed signal. Triggered when condition is false.\r\n * No out signal is available.\r\n */\r\n public readonly completed: FlowGraphSignalConnection;\r\n\r\n public constructor(config?: IFlowGraphForLoopBlockConfiguration) {\r\n super(config);\r\n\r\n this.startIndex = this.registerDataInput(\"startIndex\", RichTypeAny, 0);\r\n this.endIndex = this.registerDataInput(\"endIndex\", RichTypeAny);\r\n this.step = this.registerDataInput(\"step\", RichTypeNumber, 1);\r\n\r\n this.index = this.registerDataOutput(\"index\", RichTypeFlowGraphInteger, new FlowGraphInteger(getNumericValue(config?.initialIndex ?? 0)));\r\n this.executionFlow = this._registerSignalOutput(\"executionFlow\");\r\n this.completed = this._registerSignalOutput(\"completed\");\r\n\r\n this._unregisterSignalOutput(\"out\");\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _execute(context: FlowGraphContext): void {\r\n const index = getNumericValue(this.startIndex.getValue(context));\r\n const step = this.step.getValue(context);\r\n let endIndex = getNumericValue(this.endIndex.getValue(context));\r\n // Per-block override of the runaway-loop guard, falling back to the process-wide default.\r\n const maxIterations = (this.config as IFlowGraphForLoopBlockConfiguration | undefined)?.maxLoopIterations ?? FlowGraphForLoopBlock.MaxLoopIterations;\r\n let iterations = 0;\r\n let truncated = false;\r\n for (let i = index; i < endIndex; i += step) {\r\n this.index.setValue(new FlowGraphInteger(i), context);\r\n this.executionFlow._activateSignal(context);\r\n endIndex = getNumericValue(this.endIndex.getValue(context));\r\n // Safety net against runaway loops. The cap counts iterations (not the index value) so it\r\n // behaves correctly regardless of startIndex/step.\r\n if (++iterations >= maxIterations) {\r\n truncated = true;\r\n break;\r\n }\r\n }\r\n\r\n if (truncated) {\r\n // The loop hit its safety cap before its range completed, so the outputs below are for a\r\n // truncated run, not a natural finish. Warn so a genuinely runaway asset is diagnosable\r\n // rather than silently producing wrong numbers (the completed signal still fires, and\r\n // incrementIndexWhenLoopDone will not land on endIndex).\r\n Logger.Warn(`FlowGraphForLoopBlock: loop stopped after reaching the ${maxIterations}-iteration safety cap before its range completed.`);\r\n }\r\n\r\n if (this.config?.incrementIndexWhenLoopDone) {\r\n this.index.setValue(new FlowGraphInteger(getNumericValue(this.index.getValue(context)) + step), context);\r\n }\r\n\r\n this.completed._activateSignal(context);\r\n }\r\n\r\n /**\r\n * @returns class name of the block.\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphBlockNames.ForLoop;\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for flowGraphForLoopBlock.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterFlowGraphForLoopBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(FlowGraphBlockNames.ForLoop, FlowGraphForLoopBlock);\r\n}\r\n"]}
|
|
@@ -4,6 +4,7 @@ import { RichTypeFlowGraphInteger, RichTypeNumber } from "../../../flowGraphRich
|
|
|
4
4
|
import { AdvancedTimer } from "../../../../Misc/timer.js";
|
|
5
5
|
import { Logger } from "../../../../Misc/logger.js";
|
|
6
6
|
import { FlowGraphInteger } from "../../../CustomTypes/flowGraphInteger.pure.js";
|
|
7
|
+
import { IsDelayActive, MarkDelayActive, MarkDelayInactive } from "../../../flowGraphDelayRegistry.js";
|
|
7
8
|
import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
8
9
|
/**
|
|
9
10
|
* Block that sets a delay in seconds before activating the output signal.
|
|
@@ -39,15 +40,26 @@ export class FlowGraphSetDelayBlock extends FlowGraphAsyncExecutionBlock {
|
|
|
39
40
|
const newIndex = lastDelayIndex + 1;
|
|
40
41
|
this.lastDelayIndex.setValue(new FlowGraphInteger(newIndex), context);
|
|
41
42
|
context._setGlobalContextVariable("lastDelayIndex", newIndex);
|
|
43
|
+
// Track the delay as active so a host can report the handle as valid until it fires or
|
|
44
|
+
// is cancelled.
|
|
45
|
+
MarkDelayActive(context, newIndex);
|
|
42
46
|
timers[newIndex] = timer;
|
|
43
47
|
context._setExecutionVariable(this, "pendingDelays", timers);
|
|
44
48
|
this._updateGlobalTimers(context);
|
|
45
49
|
}
|
|
46
50
|
_cancelPendingTasks(context) {
|
|
47
51
|
const timers = context._getExecutionVariable(this, "pendingDelays", []);
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
const globalTimers = context._getGlobalContextVariable("pendingDelays", []);
|
|
53
|
+
for (let index = 0; index < timers.length; index++) {
|
|
54
|
+
const timer = timers[index];
|
|
55
|
+
if (timer) {
|
|
56
|
+
timer.dispose();
|
|
57
|
+
// The delay is no longer scheduled, so drop it from the active set.
|
|
58
|
+
MarkDelayInactive(context, index);
|
|
59
|
+
delete globalTimers[index];
|
|
60
|
+
}
|
|
50
61
|
}
|
|
62
|
+
context._setGlobalContextVariable("pendingDelays", globalTimers);
|
|
51
63
|
context._deleteExecutionVariable(this, "pendingDelays");
|
|
52
64
|
this.lastDelayIndex.setValue(new FlowGraphInteger(-1), context);
|
|
53
65
|
this._updateGlobalTimers(context);
|
|
@@ -69,7 +81,12 @@ export class FlowGraphSetDelayBlock extends FlowGraphAsyncExecutionBlock {
|
|
|
69
81
|
const timers = context._getExecutionVariable(this, "pendingDelays", []);
|
|
70
82
|
const index = timers.indexOf(timer);
|
|
71
83
|
if (index !== -1) {
|
|
72
|
-
timers
|
|
84
|
+
delete timers[index];
|
|
85
|
+
const globalTimers = context._getGlobalContextVariable("pendingDelays", []);
|
|
86
|
+
delete globalTimers[index];
|
|
87
|
+
context._setGlobalContextVariable("pendingDelays", globalTimers);
|
|
88
|
+
// The delay has fired and is no longer scheduled.
|
|
89
|
+
MarkDelayInactive(context, index);
|
|
73
90
|
}
|
|
74
91
|
else {
|
|
75
92
|
Logger.Warn("FlowGraphTimerBlock: Timer ended but was not found in the running timers list");
|
|
@@ -83,7 +100,11 @@ export class FlowGraphSetDelayBlock extends FlowGraphAsyncExecutionBlock {
|
|
|
83
100
|
const globalTimers = context._getGlobalContextVariable("pendingDelays", []);
|
|
84
101
|
// there should NEVER be the same index in the global and local timers, unless they are equal
|
|
85
102
|
for (let i = 0; i < timers.length; i++) {
|
|
86
|
-
|
|
103
|
+
// A hole in this block's local timers array (an index owned by a different delay block) or an
|
|
104
|
+
// index whose delay is no longer active must be skipped. Only `continue` here — never
|
|
105
|
+
// `delete globalTimers[i]`, because for a hole index `i` the global slot belongs to another
|
|
106
|
+
// block and deleting it would silently drop that block's still-pending delay.
|
|
107
|
+
if (!timers[i] || !IsDelayActive(context, i)) {
|
|
87
108
|
continue;
|
|
88
109
|
}
|
|
89
110
|
const timer = timers[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphSetDelayBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\n\nimport { FlowGraphAsyncExecutionBlock } from \"../../../flowGraphAsyncExecutionBlock\";\nimport { type IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\nimport { type FlowGraphContext } from \"../../../flowGraphContext\";\nimport { type FlowGraphDataConnection } from \"../../../flowGraphDataConnection.pure\";\nimport { RichTypeFlowGraphInteger, RichTypeNumber } from \"../../../flowGraphRichTypes.pure\";\nimport { type FlowGraphSignalConnection } from \"../../../flowGraphSignalConnection.pure\";\nimport { AdvancedTimer } from \"../../../../Misc/timer\";\nimport { Logger } from \"../../../../Misc/logger\";\nimport { FlowGraphBlockNames } from \"../../flowGraphBlockNames\";\nimport { FlowGraphInteger } from \"core/FlowGraph/CustomTypes/flowGraphInteger.pure\";\nimport { RegisterClass } from \"core/Misc/typeStore\";\n\n/**\n * Block that sets a delay in seconds before activating the output signal.\n */\nexport class FlowGraphSetDelayBlock extends FlowGraphAsyncExecutionBlock {\n /**\n * The maximum number of parallel delays that can be set per node.\n */\n public static MaxParallelDelayCount = 100;\n /**\n * Input signal: If activated the delayed activations set by this block will be canceled.\n */\n public readonly cancel: FlowGraphSignalConnection;\n\n /**\n * Input connection: The duration of the delay in seconds.\n */\n public readonly duration: FlowGraphDataConnection<number>;\n\n /**\n * Output connection: The last delay index that was set.\n */\n public readonly lastDelayIndex: FlowGraphDataConnection<FlowGraphInteger>;\n\n constructor(config?: IFlowGraphBlockConfiguration) {\n super(config);\n this.cancel = this._registerSignalInput(\"cancel\");\n this.duration = this.registerDataInput(\"duration\", RichTypeNumber);\n this.lastDelayIndex = this.registerDataOutput(\"lastDelayIndex\", RichTypeFlowGraphInteger, new FlowGraphInteger(-1));\n }\n\n public override _preparePendingTasks(context: FlowGraphContext): void {\n const duration = this.duration.getValue(context);\n if (duration < 0 || isNaN(duration) || !isFinite(duration)) {\n return this._reportError(context, \"Invalid duration in SetDelay block\");\n }\n\n // active delays are global to the context\n const activeDelays: number = context._getGlobalContextVariable(\"activeDelays\", 0);\n if (activeDelays >= FlowGraphSetDelayBlock.MaxParallelDelayCount) {\n return this._reportError(context, \"Max parallel delays reached\");\n }\n // get the last global delay index\n const lastDelayIndex: number = context._getGlobalContextVariable(\"lastDelayIndex\", -1);\n\n // these are block-specific and not global\n const timers = context._getExecutionVariable(this, \"pendingDelays\", [] as AdvancedTimer[]);\n const scene = context.configuration.scene;\n const timer: AdvancedTimer = new AdvancedTimer({\n timeout: duration * 1000, // duration is in seconds\n contextObservable: scene.onBeforeRenderObservable,\n onEnded: () => this._onEnded(timer, context),\n });\n timer.start();\n const newIndex = lastDelayIndex + 1;\n this.lastDelayIndex.setValue(new FlowGraphInteger(newIndex), context);\n context._setGlobalContextVariable(\"lastDelayIndex\", newIndex);\n\n timers[newIndex] = timer;\n context._setExecutionVariable(this, \"pendingDelays\", timers);\n this._updateGlobalTimers(context);\n }\n\n public override _cancelPendingTasks(context: FlowGraphContext): void {\n const timers = context._getExecutionVariable(this, \"pendingDelays\", [] as AdvancedTimer[]);\n for (const timer of timers) {\n timer?.dispose();\n }\n context._deleteExecutionVariable(this, \"pendingDelays\");\n this.lastDelayIndex.setValue(new FlowGraphInteger(-1), context);\n this._updateGlobalTimers(context);\n }\n\n public _execute(context: FlowGraphContext, callingSignal: FlowGraphSignalConnection): void {\n if (callingSignal === this.cancel) {\n this._cancelPendingTasks(context);\n return;\n } else {\n this._preparePendingTasks(context);\n this.out._activateSignal(context);\n }\n }\n\n public override getClassName(): string {\n return FlowGraphBlockNames.SetDelay;\n }\n\n private _onEnded(timer: AdvancedTimer, context: FlowGraphContext) {\n const timers = context._getExecutionVariable(this, \"pendingDelays\", [] as AdvancedTimer[]);\n const index = timers.indexOf(timer);\n if (index !== -1) {\n timers.splice(index, 1);\n } else {\n Logger.Warn(\"FlowGraphTimerBlock: Timer ended but was not found in the running timers list\");\n }\n context._removePendingBlock(this);\n this.done._activateSignal(context);\n\n this._updateGlobalTimers(context);\n }\n\n private _updateGlobalTimers(context: FlowGraphContext) {\n const timers = context._getExecutionVariable(this, \"pendingDelays\", [] as AdvancedTimer[]);\n const globalTimers = context._getGlobalContextVariable(\"pendingDelays\", [] as AdvancedTimer[]);\n // there should NEVER be the same index in the global and local timers, unless they are equal\n for (let i = 0; i < timers.length; i++) {\n if (!timers[i]) {\n continue;\n }\n const timer = timers[i];\n if (globalTimers[i] && globalTimers[i] !== timer) {\n Logger.Warn(\"FlowGraphTimerBlock: Timer ended but was not found in the running timers list\");\n } else {\n globalTimers[i] = timer;\n }\n }\n context._setGlobalContextVariable(\"pendingDelays\", globalTimers);\n }\n}\n\nlet _Registered = false;\n/**\n * Register side effects for flowGraphSetDelayBlock.\n * Safe to call multiple times; only the first call has an effect.\n */\nexport function RegisterFlowGraphSetDelayBlock(): void {\n if (_Registered) {\n return;\n }\n _Registered = true;\n\n RegisterClass(FlowGraphBlockNames.SetDelay, FlowGraphSetDelayBlock);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"flowGraphSetDelayBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\n\nimport { FlowGraphAsyncExecutionBlock } from \"../../../flowGraphAsyncExecutionBlock\";\nimport { type IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\nimport { type FlowGraphContext } from \"../../../flowGraphContext\";\nimport { type FlowGraphDataConnection } from \"../../../flowGraphDataConnection.pure\";\nimport { RichTypeFlowGraphInteger, RichTypeNumber } from \"../../../flowGraphRichTypes.pure\";\nimport { type FlowGraphSignalConnection } from \"../../../flowGraphSignalConnection.pure\";\nimport { AdvancedTimer } from \"../../../../Misc/timer\";\nimport { Logger } from \"../../../../Misc/logger\";\nimport { FlowGraphBlockNames } from \"../../flowGraphBlockNames\";\nimport { FlowGraphInteger } from \"core/FlowGraph/CustomTypes/flowGraphInteger.pure\";\nimport { IsDelayActive, MarkDelayActive, MarkDelayInactive } from \"core/FlowGraph/flowGraphDelayRegistry\";\nimport { RegisterClass } from \"core/Misc/typeStore\";\n\n/**\n * Block that sets a delay in seconds before activating the output signal.\n */\nexport class FlowGraphSetDelayBlock extends FlowGraphAsyncExecutionBlock {\n /**\n * The maximum number of parallel delays that can be set per node.\n */\n public static MaxParallelDelayCount = 100;\n /**\n * Input signal: If activated the delayed activations set by this block will be canceled.\n */\n public readonly cancel: FlowGraphSignalConnection;\n\n /**\n * Input connection: The duration of the delay in seconds.\n */\n public readonly duration: FlowGraphDataConnection<number>;\n\n /**\n * Output connection: The last delay index that was set.\n */\n public readonly lastDelayIndex: FlowGraphDataConnection<FlowGraphInteger>;\n\n constructor(config?: IFlowGraphBlockConfiguration) {\n super(config);\n this.cancel = this._registerSignalInput(\"cancel\");\n this.duration = this.registerDataInput(\"duration\", RichTypeNumber);\n this.lastDelayIndex = this.registerDataOutput(\"lastDelayIndex\", RichTypeFlowGraphInteger, new FlowGraphInteger(-1));\n }\n\n public override _preparePendingTasks(context: FlowGraphContext): void {\n const duration = this.duration.getValue(context);\n if (duration < 0 || isNaN(duration) || !isFinite(duration)) {\n return this._reportError(context, \"Invalid duration in SetDelay block\");\n }\n\n // active delays are global to the context\n const activeDelays: number = context._getGlobalContextVariable(\"activeDelays\", 0);\n if (activeDelays >= FlowGraphSetDelayBlock.MaxParallelDelayCount) {\n return this._reportError(context, \"Max parallel delays reached\");\n }\n // get the last global delay index\n const lastDelayIndex: number = context._getGlobalContextVariable(\"lastDelayIndex\", -1);\n\n // these are block-specific and not global\n const timers = context._getExecutionVariable(this, \"pendingDelays\", [] as AdvancedTimer[]);\n const scene = context.configuration.scene;\n const timer: AdvancedTimer = new AdvancedTimer({\n timeout: duration * 1000, // duration is in seconds\n contextObservable: scene.onBeforeRenderObservable,\n onEnded: () => this._onEnded(timer, context),\n });\n timer.start();\n const newIndex = lastDelayIndex + 1;\n this.lastDelayIndex.setValue(new FlowGraphInteger(newIndex), context);\n context._setGlobalContextVariable(\"lastDelayIndex\", newIndex);\n // Track the delay as active so a host can report the handle as valid until it fires or\n // is cancelled.\n MarkDelayActive(context, newIndex);\n\n timers[newIndex] = timer;\n context._setExecutionVariable(this, \"pendingDelays\", timers);\n this._updateGlobalTimers(context);\n }\n\n public override _cancelPendingTasks(context: FlowGraphContext): void {\n const timers = context._getExecutionVariable(this, \"pendingDelays\", [] as AdvancedTimer[]);\n const globalTimers = context._getGlobalContextVariable(\"pendingDelays\", [] as AdvancedTimer[]);\n for (let index = 0; index < timers.length; index++) {\n const timer = timers[index];\n if (timer) {\n timer.dispose();\n // The delay is no longer scheduled, so drop it from the active set.\n MarkDelayInactive(context, index);\n delete globalTimers[index];\n }\n }\n context._setGlobalContextVariable(\"pendingDelays\", globalTimers);\n context._deleteExecutionVariable(this, \"pendingDelays\");\n this.lastDelayIndex.setValue(new FlowGraphInteger(-1), context);\n this._updateGlobalTimers(context);\n }\n\n public _execute(context: FlowGraphContext, callingSignal: FlowGraphSignalConnection): void {\n if (callingSignal === this.cancel) {\n this._cancelPendingTasks(context);\n return;\n } else {\n this._preparePendingTasks(context);\n this.out._activateSignal(context);\n }\n }\n\n public override getClassName(): string {\n return FlowGraphBlockNames.SetDelay;\n }\n\n private _onEnded(timer: AdvancedTimer, context: FlowGraphContext) {\n const timers = context._getExecutionVariable(this, \"pendingDelays\", [] as AdvancedTimer[]);\n const index = timers.indexOf(timer);\n if (index !== -1) {\n delete timers[index];\n const globalTimers = context._getGlobalContextVariable(\"pendingDelays\", [] as AdvancedTimer[]);\n delete globalTimers[index];\n context._setGlobalContextVariable(\"pendingDelays\", globalTimers);\n // The delay has fired and is no longer scheduled.\n MarkDelayInactive(context, index);\n } else {\n Logger.Warn(\"FlowGraphTimerBlock: Timer ended but was not found in the running timers list\");\n }\n context._removePendingBlock(this);\n this.done._activateSignal(context);\n\n this._updateGlobalTimers(context);\n }\n\n private _updateGlobalTimers(context: FlowGraphContext) {\n const timers = context._getExecutionVariable(this, \"pendingDelays\", [] as AdvancedTimer[]);\n const globalTimers = context._getGlobalContextVariable(\"pendingDelays\", [] as AdvancedTimer[]);\n // there should NEVER be the same index in the global and local timers, unless they are equal\n for (let i = 0; i < timers.length; i++) {\n // A hole in this block's local timers array (an index owned by a different delay block) or an\n // index whose delay is no longer active must be skipped. Only `continue` here — never\n // `delete globalTimers[i]`, because for a hole index `i` the global slot belongs to another\n // block and deleting it would silently drop that block's still-pending delay.\n if (!timers[i] || !IsDelayActive(context, i)) {\n continue;\n }\n const timer = timers[i];\n if (globalTimers[i] && globalTimers[i] !== timer) {\n Logger.Warn(\"FlowGraphTimerBlock: Timer ended but was not found in the running timers list\");\n } else {\n globalTimers[i] = timer;\n }\n }\n context._setGlobalContextVariable(\"pendingDelays\", globalTimers);\n }\n}\n\nlet _Registered = false;\n/**\n * Register side effects for flowGraphSetDelayBlock.\n * Safe to call multiple times; only the first call has an effect.\n */\nexport function RegisterFlowGraphSetDelayBlock(): void {\n if (_Registered) {\n return;\n }\n _Registered = true;\n\n RegisterClass(FlowGraphBlockNames.SetDelay, FlowGraphSetDelayBlock);\n}\n"]}
|
|
@@ -43,12 +43,16 @@ export function blockFactory(blockName) {
|
|
|
43
43
|
return async () => (await import("./Event/flowGraphSendCustomEventBlock.js")).FlowGraphSendCustomEventBlock;
|
|
44
44
|
case "FlowGraphReceiveCustomEventBlock" /* FlowGraphBlockNames.ReceiveCustomEvent */:
|
|
45
45
|
return async () => (await import("./Event/flowGraphReceiveCustomEventBlock.js")).FlowGraphReceiveCustomEventBlock;
|
|
46
|
+
case "FlowGraphStopEventPropagationBlock" /* FlowGraphBlockNames.StopEventPropagation */:
|
|
47
|
+
return async () => (await import("./Event/flowGraphStopEventPropagationBlock.js")).FlowGraphStopEventPropagationBlock;
|
|
46
48
|
case "FlowGraphMeshPickEventBlock" /* FlowGraphBlockNames.MeshPickEvent */:
|
|
47
49
|
return async () => (await import("./Event/flowGraphMeshPickEventBlock.js")).FlowGraphMeshPickEventBlock;
|
|
48
50
|
case "FlowGraphEBlock" /* FlowGraphBlockNames.E */:
|
|
49
51
|
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphEBlock;
|
|
50
52
|
case "FlowGraphPIBlock" /* FlowGraphBlockNames.PI */:
|
|
51
53
|
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphPiBlock;
|
|
54
|
+
case "FlowGraphTauBlock" /* FlowGraphBlockNames.Tau */:
|
|
55
|
+
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphTauBlock;
|
|
52
56
|
case "FlowGraphInfBlock" /* FlowGraphBlockNames.Inf */:
|
|
53
57
|
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphInfBlock;
|
|
54
58
|
case "FlowGraphNaNBlock" /* FlowGraphBlockNames.NaN */:
|
|
@@ -91,6 +95,14 @@ export function blockFactory(blockName) {
|
|
|
91
95
|
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphSaturateBlock;
|
|
92
96
|
case "FlowGraphMathInterpolationBlock" /* FlowGraphBlockNames.MathInterpolation */:
|
|
93
97
|
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphMathInterpolationBlock;
|
|
98
|
+
case "FlowGraphMathSlerpBlock" /* FlowGraphBlockNames.MathSlerp */:
|
|
99
|
+
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphMathSlerpBlock;
|
|
100
|
+
case "FlowGraphSmoothStepBlock" /* FlowGraphBlockNames.SmoothStep */:
|
|
101
|
+
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphMathSmoothStepBlock;
|
|
102
|
+
case "FlowGraphRGBToOkLChBlock" /* FlowGraphBlockNames.RGBToOkLCh */:
|
|
103
|
+
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphRGBToOkLChBlock;
|
|
104
|
+
case "FlowGraphRGBFromOkLChBlock" /* FlowGraphBlockNames.RGBFromOkLCh */:
|
|
105
|
+
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphRGBFromOkLChBlock;
|
|
94
106
|
case "FlowGraphEqualityBlock" /* FlowGraphBlockNames.Equality */:
|
|
95
107
|
return async () => (await import("./Data/Math/flowGraphMathBlocks.js")).FlowGraphEqualityBlock;
|
|
96
108
|
case "FlowGraphLessThanBlock" /* FlowGraphBlockNames.LessThan */:
|
|
@@ -273,6 +285,12 @@ export function blockFactory(blockName) {
|
|
|
273
285
|
return async () => (await import("./Data/Math/flowGraphVectorMathBlocks.js")).FlowGraphAxisAngleFromQuaternionBlock;
|
|
274
286
|
case "FlowGraphQuaternionFromDirectionsBlock" /* FlowGraphBlockNames.QuaternionFromDirections */:
|
|
275
287
|
return async () => (await import("./Data/Math/flowGraphVectorMathBlocks.js")).FlowGraphQuaternionFromDirectionsBlock;
|
|
288
|
+
case "FlowGraphQuaternionFromUpForwardBlock" /* FlowGraphBlockNames.QuaternionFromUpForward */:
|
|
289
|
+
return async () => (await import("./Data/Math/flowGraphVectorMathBlocks.js")).FlowGraphQuaternionFromUpForwardBlock;
|
|
290
|
+
case "FlowGraphQuaternionFromAnglesBlock" /* FlowGraphBlockNames.QuaternionFromAngles */:
|
|
291
|
+
return async () => (await import("./Data/Math/flowGraphVectorMathBlocks.js")).FlowGraphQuaternionFromAnglesBlock;
|
|
292
|
+
case "FlowGraphVectorSlerpBlock" /* FlowGraphBlockNames.VectorSlerp */:
|
|
293
|
+
return async () => (await import("./Data/Math/flowGraphVectorMathBlocks.js")).FlowGraphVectorSlerpBlock;
|
|
276
294
|
case "FlowGraphMatrixDecompose" /* FlowGraphBlockNames.MatrixDecompose */:
|
|
277
295
|
return async () => (await import("./Data/Math/flowGraphMatrixMathBlocks.js")).FlowGraphMatrixDecomposeBlock;
|
|
278
296
|
case "FlowGraphMatrixCompose" /* FlowGraphBlockNames.MatrixCompose */:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphBlockFactory.js","sourceRoot":"","sources":["../../../../../dev/core/src/FlowGraph/Blocks/flowGraphBlockFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import { type FlowGraphBlock } from \"../flowGraphBlock\";\nimport { FlowGraphBlockNames } from \"./flowGraphBlockNames\";\n\n/**\n * Any external module that wishes to add a new block to the flow graph can add to this object using the helper function.\n */\nconst CustomBlocks: Record<string, () => Promise<typeof FlowGraphBlock>> = {};\n/**\n * Reverse lookup: short block name → full \"module/blockName\" key, for O(1) fallback.\n */\nconst ShortNameToFullKey: Record<string, string> = {};\n\n/**\n * If you want to add a new block to the block factory, you should use this function.\n * Please be sure to choose a unique name and define the responsible module.\n * @param module the name of the module that is responsible for the block\n * @param blockName the name of the block. This should be unique.\n * @param factory an async factory function to generate the block\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function addToBlockFactory(module: string, blockName: string, factory: () => Promise<typeof FlowGraphBlock>): void {\n const fullKey = `${module}/${blockName}`;\n CustomBlocks[fullKey] = factory;\n ShortNameToFullKey[blockName] = fullKey;\n}\n\n/**\n * a function to get a factory function for a block.\n * @param blockName the block name to initialize. If the block comes from an external module, the name should be in the format \"module/blockName\"\n * @returns an async factory function that will return the block class when called.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function blockFactory(blockName: FlowGraphBlockNames | string): () => Promise<typeof FlowGraphBlock> {\n switch (blockName) {\n case FlowGraphBlockNames.PlayAnimation:\n return async () => (await import(\"./Execution/Animation/flowGraphPlayAnimationBlock\")).FlowGraphPlayAnimationBlock;\n case FlowGraphBlockNames.StopAnimation:\n return async () => (await import(\"./Execution/Animation/flowGraphStopAnimationBlock\")).FlowGraphStopAnimationBlock;\n case FlowGraphBlockNames.PauseAnimation:\n return async () => (await import(\"./Execution/Animation/flowGraphPauseAnimationBlock\")).FlowGraphPauseAnimationBlock;\n case FlowGraphBlockNames.ValueInterpolation:\n return async () => (await import(\"./Execution/Animation/flowGraphInterpolationBlock\")).FlowGraphInterpolationBlock;\n case FlowGraphBlockNames.SceneReadyEvent:\n return async () => (await import(\"./Event/flowGraphSceneReadyEventBlock\")).FlowGraphSceneReadyEventBlock;\n case FlowGraphBlockNames.SceneTickEvent:\n return async () => (await import(\"./Event/flowGraphSceneTickEventBlock\")).FlowGraphSceneTickEventBlock;\n case FlowGraphBlockNames.SendCustomEvent:\n return async () => (await import(\"./Event/flowGraphSendCustomEventBlock\")).FlowGraphSendCustomEventBlock;\n case FlowGraphBlockNames.ReceiveCustomEvent:\n return async () => (await import(\"./Event/flowGraphReceiveCustomEventBlock\")).FlowGraphReceiveCustomEventBlock;\n case FlowGraphBlockNames.MeshPickEvent:\n return async () => (await import(\"./Event/flowGraphMeshPickEventBlock\")).FlowGraphMeshPickEventBlock;\n case FlowGraphBlockNames.E:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphEBlock;\n case FlowGraphBlockNames.PI:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphPiBlock;\n case FlowGraphBlockNames.Inf:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphInfBlock;\n case FlowGraphBlockNames.NaN:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphNaNBlock;\n case FlowGraphBlockNames.Random:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphRandomBlock;\n case FlowGraphBlockNames.Add:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAddBlock;\n case FlowGraphBlockNames.Subtract:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSubtractBlock;\n case FlowGraphBlockNames.Multiply:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMultiplyBlock;\n case FlowGraphBlockNames.Divide:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphDivideBlock;\n case FlowGraphBlockNames.Abs:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAbsBlock;\n case FlowGraphBlockNames.Sign:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSignBlock;\n case FlowGraphBlockNames.Trunc:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphTruncBlock;\n case FlowGraphBlockNames.Floor:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphFloorBlock;\n case FlowGraphBlockNames.Ceil:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphCeilBlock;\n case FlowGraphBlockNames.Round:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphRoundBlock;\n case FlowGraphBlockNames.Fraction:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphFractionBlock;\n case FlowGraphBlockNames.Negation:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphNegationBlock;\n case FlowGraphBlockNames.Modulo:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphModuloBlock;\n case FlowGraphBlockNames.Min:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMinBlock;\n case FlowGraphBlockNames.Max:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMaxBlock;\n case FlowGraphBlockNames.Clamp:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphClampBlock;\n case FlowGraphBlockNames.Saturate:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSaturateBlock;\n case FlowGraphBlockNames.MathInterpolation:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMathInterpolationBlock;\n case FlowGraphBlockNames.Equality:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphEqualityBlock;\n case FlowGraphBlockNames.LessThan:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLessThanBlock;\n case FlowGraphBlockNames.LessThanOrEqual:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLessThanOrEqualBlock;\n case FlowGraphBlockNames.GreaterThan:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphGreaterThanBlock;\n case FlowGraphBlockNames.GreaterThanOrEqual:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphGreaterThanOrEqualBlock;\n case FlowGraphBlockNames.IsNaN:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphIsNanBlock;\n case FlowGraphBlockNames.IsInfinity:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphIsInfinityBlock;\n case FlowGraphBlockNames.DegToRad:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphDegToRadBlock;\n case FlowGraphBlockNames.RadToDeg:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphRadToDegBlock;\n case FlowGraphBlockNames.Sin:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSinBlock;\n case FlowGraphBlockNames.Cos:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphCosBlock;\n case FlowGraphBlockNames.Tan:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphTanBlock;\n case FlowGraphBlockNames.Asin:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAsinBlock;\n case FlowGraphBlockNames.Acos:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAcosBlock;\n case FlowGraphBlockNames.Atan:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAtanBlock;\n case FlowGraphBlockNames.Atan2:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAtan2Block;\n case FlowGraphBlockNames.Sinh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSinhBlock;\n case FlowGraphBlockNames.Cosh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphCoshBlock;\n case FlowGraphBlockNames.Tanh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphTanhBlock;\n case FlowGraphBlockNames.Asinh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAsinhBlock;\n case FlowGraphBlockNames.Acosh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAcoshBlock;\n case FlowGraphBlockNames.Atanh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAtanhBlock;\n case FlowGraphBlockNames.Exponential:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphExpBlock;\n case FlowGraphBlockNames.Log:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLogBlock;\n case FlowGraphBlockNames.Log2:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLog2Block;\n case FlowGraphBlockNames.Log10:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLog10Block;\n case FlowGraphBlockNames.SquareRoot:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSquareRootBlock;\n case FlowGraphBlockNames.Power:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphPowerBlock;\n case FlowGraphBlockNames.CubeRoot:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphCubeRootBlock;\n case FlowGraphBlockNames.BitwiseAnd:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseAndBlock;\n case FlowGraphBlockNames.BitwiseOr:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseOrBlock;\n case FlowGraphBlockNames.BitwiseNot:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseNotBlock;\n case FlowGraphBlockNames.BitwiseXor:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseXorBlock;\n case FlowGraphBlockNames.BitwiseLeftShift:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseLeftShiftBlock;\n case FlowGraphBlockNames.BitwiseRightShift:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseRightShiftBlock;\n case FlowGraphBlockNames.Length:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphLengthBlock;\n case FlowGraphBlockNames.Normalize:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphNormalizeBlock;\n case FlowGraphBlockNames.Dot:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphDotBlock;\n case FlowGraphBlockNames.Cross:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphCrossBlock;\n case FlowGraphBlockNames.Rotate2D:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphRotate2DBlock;\n case FlowGraphBlockNames.Rotate3D:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphRotate3DBlock;\n case FlowGraphBlockNames.Transpose:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphTransposeBlock;\n case FlowGraphBlockNames.Determinant:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphDeterminantBlock;\n case FlowGraphBlockNames.InvertMatrix:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphInvertMatrixBlock;\n case FlowGraphBlockNames.MatrixMultiplication:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphMatrixMultiplicationBlock;\n case FlowGraphBlockNames.Branch:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphBranchBlock\")).FlowGraphBranchBlock;\n case FlowGraphBlockNames.SetDelay:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphSetDelayBlock\")).FlowGraphSetDelayBlock;\n case FlowGraphBlockNames.CancelDelay:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphCancelDelayBlock\")).FlowGraphCancelDelayBlock;\n case FlowGraphBlockNames.CallCounter:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphCounterBlock\")).FlowGraphCallCounterBlock;\n case FlowGraphBlockNames.Debounce:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphDebounceBlock\")).FlowGraphDebounceBlock;\n case FlowGraphBlockNames.Throttle:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphThrottleBlock\")).FlowGraphThrottleBlock;\n case FlowGraphBlockNames.DoN:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphDoNBlock\")).FlowGraphDoNBlock;\n case FlowGraphBlockNames.FlipFlop:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphFlipFlopBlock\")).FlowGraphFlipFlopBlock;\n case FlowGraphBlockNames.ForLoop:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphForLoopBlock\")).FlowGraphForLoopBlock;\n case FlowGraphBlockNames.MultiGate:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphMultiGateBlock\")).FlowGraphMultiGateBlock;\n case FlowGraphBlockNames.Sequence:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphSequenceBlock\")).FlowGraphSequenceBlock;\n case FlowGraphBlockNames.Switch:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphSwitchBlock\")).FlowGraphSwitchBlock;\n case FlowGraphBlockNames.WaitAll:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphWaitAllBlock\")).FlowGraphWaitAllBlock;\n case FlowGraphBlockNames.WhileLoop:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphWhileLoopBlock\")).FlowGraphWhileLoopBlock;\n case FlowGraphBlockNames.ConsoleLog:\n return async () => (await import(\"./Execution/flowGraphConsoleLogBlock\")).FlowGraphConsoleLogBlock;\n case FlowGraphBlockNames.Conditional:\n return async () => (await import(\"./Data/flowGraphConditionalDataBlock\")).FlowGraphConditionalDataBlock;\n case FlowGraphBlockNames.Constant:\n return async () => (await import(\"./Data/flowGraphConstantBlock\")).FlowGraphConstantBlock;\n case FlowGraphBlockNames.TransformCoordinatesSystem:\n return async () => (await import(\"./Data/flowGraphTransformCoordinatesSystemBlock\")).FlowGraphTransformCoordinatesSystemBlock;\n case FlowGraphBlockNames.GetAsset:\n return async () => (await import(\"./Data/flowGraphGetAssetBlock\")).FlowGraphGetAssetBlock;\n case FlowGraphBlockNames.GetProperty:\n return async () => (await import(\"./Data/flowGraphGetPropertyBlock\")).FlowGraphGetPropertyBlock;\n case FlowGraphBlockNames.SetProperty:\n return async () => (await import(\"./Execution/flowGraphSetPropertyBlock\")).FlowGraphSetPropertyBlock;\n case FlowGraphBlockNames.GetVariable:\n return async () => (await import(\"./Data/flowGraphGetVariableBlock\")).FlowGraphGetVariableBlock;\n case FlowGraphBlockNames.SetVariable:\n return async () => (await import(\"./Execution/flowGraphSetVariableBlock\")).FlowGraphSetVariableBlock;\n case FlowGraphBlockNames.JsonPointerParser:\n return async () => (await import(\"./Data/Transformers/flowGraphJsonPointerParserBlock\")).FlowGraphJsonPointerParserBlock;\n case FlowGraphBlockNames.LeadingZeros:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLeadingZerosBlock;\n case FlowGraphBlockNames.TrailingZeros:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphTrailingZerosBlock;\n case FlowGraphBlockNames.OneBitsCounter:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphOneBitsCounterBlock;\n case FlowGraphBlockNames.CombineVector2:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineVector2Block;\n case FlowGraphBlockNames.CombineVector3:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineVector3Block;\n case FlowGraphBlockNames.CombineVector4:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineVector4Block;\n case FlowGraphBlockNames.CombineMatrix:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineMatrixBlock;\n case FlowGraphBlockNames.CombineMatrix2D:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineMatrix2DBlock;\n case FlowGraphBlockNames.CombineMatrix3D:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineMatrix3DBlock;\n case FlowGraphBlockNames.ExtractVector2:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractVector2Block;\n case FlowGraphBlockNames.ExtractVector3:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractVector3Block;\n case FlowGraphBlockNames.ExtractVector4:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractVector4Block;\n case FlowGraphBlockNames.ExtractMatrix:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractMatrixBlock;\n case FlowGraphBlockNames.ExtractMatrix2D:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractMatrix2DBlock;\n case FlowGraphBlockNames.ExtractMatrix3D:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractMatrix3DBlock;\n case FlowGraphBlockNames.TransformVector:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphTransformBlock;\n case FlowGraphBlockNames.TransformCoordinates:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphTransformCoordinatesBlock;\n case FlowGraphBlockNames.Conjugate:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphConjugateBlock;\n case FlowGraphBlockNames.AngleBetween:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphAngleBetweenBlock;\n case FlowGraphBlockNames.QuaternionFromAxisAngle:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphQuaternionFromAxisAngleBlock;\n case FlowGraphBlockNames.AxisAngleFromQuaternion:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphAxisAngleFromQuaternionBlock;\n case FlowGraphBlockNames.QuaternionFromDirections:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphQuaternionFromDirectionsBlock;\n case FlowGraphBlockNames.MatrixDecompose:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphMatrixDecomposeBlock;\n case FlowGraphBlockNames.MatrixCompose:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphMatrixComposeBlock;\n case FlowGraphBlockNames.BooleanToFloat:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphBooleanToFloat;\n case FlowGraphBlockNames.BooleanToInt:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphBooleanToInt;\n case FlowGraphBlockNames.FloatToBoolean:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphFloatToBoolean;\n case FlowGraphBlockNames.IntToBoolean:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphIntToBoolean;\n case FlowGraphBlockNames.IntToFloat:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphIntToFloat;\n case FlowGraphBlockNames.FloatToInt:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphFloatToInt;\n case FlowGraphBlockNames.Easing:\n return async () => (await import(\"./Execution/Animation/flowGraphEasingBlock\")).FlowGraphEasingBlock;\n case FlowGraphBlockNames.BezierCurveEasing:\n return async () => (await import(\"./Execution/Animation/flowGraphBezierCurveEasingBlock\")).FlowGraphBezierCurveEasingBlock;\n case FlowGraphBlockNames.PointerOverEvent:\n return async () => (await import(\"./Event/flowGraphPointerOverEventBlock\")).FlowGraphPointerOverEventBlock;\n case FlowGraphBlockNames.PointerOutEvent:\n return async () => (await import(\"./Event/flowGraphPointerOutEventBlock\")).FlowGraphPointerOutEventBlock;\n case FlowGraphBlockNames.PointerDownEvent:\n return async () => (await import(\"./Event/flowGraphPointerDownEventBlock\")).FlowGraphPointerDownEventBlock;\n case FlowGraphBlockNames.PointerUpEvent:\n return async () => (await import(\"./Event/flowGraphPointerUpEventBlock\")).FlowGraphPointerUpEventBlock;\n case FlowGraphBlockNames.PointerMoveEvent:\n return async () => (await import(\"./Event/flowGraphPointerMoveEventBlock\")).FlowGraphPointerMoveEventBlock;\n // Keyboard\n case FlowGraphBlockNames.KeyDownEvent:\n return async () => (await import(\"./Event/flowGraphKeyDownEventBlock\")).FlowGraphKeyDownEventBlock;\n case FlowGraphBlockNames.KeyUpEvent:\n return async () => (await import(\"./Event/flowGraphKeyUpEventBlock\")).FlowGraphKeyUpEventBlock;\n case FlowGraphBlockNames.IsKeyPressed:\n return async () => (await import(\"./Data/flowGraphIsKeyPressedBlock\")).FlowGraphIsKeyPressedBlock;\n case FlowGraphBlockNames.Context:\n return async () => (await import(\"./Data/Utils/flowGraphContextBlock\")).FlowGraphContextBlock;\n case FlowGraphBlockNames.ArrayIndex:\n return async () => (await import(\"./Data/Utils/flowGraphArrayIndexBlock\")).FlowGraphArrayIndexBlock;\n case FlowGraphBlockNames.CodeExecution:\n return async () => (await import(\"./Data/Utils/flowGraphCodeExecutionBlock\")).FlowGraphCodeExecutionBlock;\n case FlowGraphBlockNames.IndexOf:\n return async () => (await import(\"./Data/Utils/flowGraphIndexOfBlock\")).FlowGraphIndexOfBlock;\n case FlowGraphBlockNames.FunctionReference:\n return async () => (await import(\"./Data/Utils/flowGraphFunctionReferenceBlock\")).FlowGraphFunctionReferenceBlock;\n case FlowGraphBlockNames.DataSwitch:\n return async () => (await import(\"./Data/flowGraphDataSwitchBlock\")).FlowGraphDataSwitchBlock;\n case FlowGraphBlockNames.DebugBlock:\n return async () => (await import(\"./Data/flowGraphDebugBlock\")).FlowGraphDebugBlock;\n // Physics\n case FlowGraphBlockNames.PhysicsCollisionEvent:\n return async () => (await import(\"./Event/flowGraphPhysicsCollisionEventBlock\")).FlowGraphPhysicsCollisionEventBlock;\n case FlowGraphBlockNames.PhysicsApplyForce:\n return async () => (await import(\"./Execution/Physics/flowGraphApplyForceBlock\")).FlowGraphApplyForceBlock;\n case FlowGraphBlockNames.PhysicsApplyImpulse:\n return async () => (await import(\"./Execution/Physics/flowGraphApplyImpulseBlock\")).FlowGraphApplyImpulseBlock;\n case FlowGraphBlockNames.PhysicsSetLinearVelocity:\n return async () => (await import(\"./Execution/Physics/flowGraphSetLinearVelocityBlock\")).FlowGraphSetLinearVelocityBlock;\n case FlowGraphBlockNames.PhysicsSetAngularVelocity:\n return async () => (await import(\"./Execution/Physics/flowGraphSetAngularVelocityBlock\")).FlowGraphSetAngularVelocityBlock;\n case FlowGraphBlockNames.PhysicsSetMotionType:\n return async () => (await import(\"./Execution/Physics/flowGraphSetPhysicsMotionTypeBlock\")).FlowGraphSetPhysicsMotionTypeBlock;\n case FlowGraphBlockNames.PhysicsGetLinearVelocity:\n return async () => (await import(\"./Data/Physics/flowGraphGetLinearVelocityBlock\")).FlowGraphGetLinearVelocityBlock;\n case FlowGraphBlockNames.PhysicsGetAngularVelocity:\n return async () => (await import(\"./Data/Physics/flowGraphGetAngularVelocityBlock\")).FlowGraphGetAngularVelocityBlock;\n case FlowGraphBlockNames.PhysicsGetMassProperties:\n return async () => (await import(\"./Data/Physics/flowGraphGetPhysicsMassPropertiesBlock\")).FlowGraphGetPhysicsMassPropertiesBlock;\n // Audio\n case FlowGraphBlockNames.AudioPlaySound:\n return async () => (await import(\"./Execution/Audio/flowGraphPlaySoundBlock\")).FlowGraphPlaySoundBlock;\n case FlowGraphBlockNames.AudioStopSound:\n return async () => (await import(\"./Execution/Audio/flowGraphStopSoundBlock\")).FlowGraphStopSoundBlock;\n case FlowGraphBlockNames.AudioPauseSound:\n return async () => (await import(\"./Execution/Audio/flowGraphPauseSoundBlock\")).FlowGraphPauseSoundBlock;\n case FlowGraphBlockNames.AudioSetVolume:\n return async () => (await import(\"./Execution/Audio/flowGraphSetSoundVolumeBlock\")).FlowGraphSetSoundVolumeBlock;\n case FlowGraphBlockNames.AudioSoundEndedEvent:\n return async () => (await import(\"./Event/flowGraphSoundEndedEventBlock\")).FlowGraphSoundEndedEventBlock;\n case FlowGraphBlockNames.AudioGetVolume:\n return async () => (await import(\"./Data/Audio/flowGraphGetSoundVolumeBlock\")).FlowGraphGetSoundVolumeBlock;\n case FlowGraphBlockNames.AudioIsSoundPlaying:\n return async () => (await import(\"./Data/Audio/flowGraphIsSoundPlayingBlock\")).FlowGraphIsSoundPlayingBlock;\n default:\n // check if the block is a custom block\n if (CustomBlocks[blockName]) {\n return CustomBlocks[blockName];\n }\n // Fallback: O(1) reverse lookup by short name (e.g. \"FlowGraphGLTFDataProvider\" → \"KHR_interactivity/FlowGraphGLTFDataProvider\")\n if (!blockName.includes(\"/\")) {\n const fullKey = ShortNameToFullKey[blockName];\n if (fullKey && CustomBlocks[fullKey]) {\n return CustomBlocks[fullKey];\n }\n }\n throw new Error(`Unknown block name ${blockName}`);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"flowGraphBlockFactory.js","sourceRoot":"","sources":["../../../../../dev/core/src/FlowGraph/Blocks/flowGraphBlockFactory.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,YAAY,GAAyD,EAAE,CAAC;AAC9E;;GAEG;AACH,MAAM,kBAAkB,GAA2B,EAAE,CAAC;AAEtD;;;;;;GAMG;AACH,gEAAgE;AAChE,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,SAAiB,EAAE,OAA6C;IAC9G,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;IACzC,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,kBAAkB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,SAAuC;IAChE,QAAQ,SAAS,EAAE,CAAC;QAChB;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC,2BAA2B,CAAC;QACvH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC,2BAA2B,CAAC;QACvH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,oDAAoD,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACzH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC,2BAA2B,CAAC;QACvH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC,4BAA4B,CAAC;QAC3G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC,gCAAgC,CAAC;QACnH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC,kCAAkC,CAAC;QACvH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC,2BAA2B,CAAC;QACzG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,eAAe,CAAC;QACzF;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC1F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC9F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC9F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC9F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,+BAA+B,CAAC;QACzG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACjG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACtG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAClG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACpG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACvG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACnG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,gCAAgC,CAAC;QAC1G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAClG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC5F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAClG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAChG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAClG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACjG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAClG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAClG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,8BAA8B,CAAC;QACxG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,+BAA+B,CAAC;QACzG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACpG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACvG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACjG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACnG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACtG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACtG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACvG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACzG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC1G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,kCAAkC,CAAC;QAClH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC3G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACrH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACjH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACrG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACjH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC3G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACjH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACvG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAC5G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAC9F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC,wCAAwC,CAAC;QAClI;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAC9F;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACpG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACzG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACpG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACzG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC,+BAA+B,CAAC;QAC7H;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACpG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,2BAA2B,CAAC;QACrG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACtG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACpH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACpH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACpH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,2BAA2B,CAAC;QACnH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACrH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACrH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACpH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACpH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACpH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,2BAA2B,CAAC;QACnH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACrH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACrH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACvG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,kCAAkC,CAAC;QAClH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACvG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC1G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,qCAAqC,CAAC;QACrH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,qCAAqC,CAAC;QACrH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,sCAAsC,CAAC;QACtH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,qCAAqC,CAAC;QACrH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,kCAAkC,CAAC;QAClH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACzG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC3G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC3G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC3G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACzG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC,+BAA+B,CAAC;QAC/H;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC,8BAA8B,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC,8BAA8B,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC,4BAA4B,CAAC;QAC3G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC,8BAA8B,CAAC;QAC/G,WAAW;QACX;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACvG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACnG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACtG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAClG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACxG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC9G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAClG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC,+BAA+B,CAAC;QACtH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAClG;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACxF,UAAU;QACV;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC,mCAAmC,CAAC;QACzH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAC/G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACnH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC,+BAA+B,CAAC;QAC7H;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC,gCAAgC,CAAC;QAC/H;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wDAAwD,CAAC,CAAC,CAAC,kCAAkC,CAAC;QACnI;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,+BAA+B,CAAC;QACxH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC,gCAAgC,CAAC;QAC1H;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC,sCAAsC,CAAC;QACtI,QAAQ;QACR;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAC3G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAC3G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACrH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAC7G;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC,4BAA4B,CAAC;QAChH;YACI,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC,4BAA4B,CAAC;QAChH;YACI,uCAAuC;YACvC,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC;YACD,iIAAiI;YACjI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC","sourcesContent":["import { type FlowGraphBlock } from \"../flowGraphBlock\";\nimport { FlowGraphBlockNames } from \"./flowGraphBlockNames\";\n\n/**\n * Any external module that wishes to add a new block to the flow graph can add to this object using the helper function.\n */\nconst CustomBlocks: Record<string, () => Promise<typeof FlowGraphBlock>> = {};\n/**\n * Reverse lookup: short block name → full \"module/blockName\" key, for O(1) fallback.\n */\nconst ShortNameToFullKey: Record<string, string> = {};\n\n/**\n * If you want to add a new block to the block factory, you should use this function.\n * Please be sure to choose a unique name and define the responsible module.\n * @param module the name of the module that is responsible for the block\n * @param blockName the name of the block. This should be unique.\n * @param factory an async factory function to generate the block\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function addToBlockFactory(module: string, blockName: string, factory: () => Promise<typeof FlowGraphBlock>): void {\n const fullKey = `${module}/${blockName}`;\n CustomBlocks[fullKey] = factory;\n ShortNameToFullKey[blockName] = fullKey;\n}\n\n/**\n * a function to get a factory function for a block.\n * @param blockName the block name to initialize. If the block comes from an external module, the name should be in the format \"module/blockName\"\n * @returns an async factory function that will return the block class when called.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function blockFactory(blockName: FlowGraphBlockNames | string): () => Promise<typeof FlowGraphBlock> {\n switch (blockName) {\n case FlowGraphBlockNames.PlayAnimation:\n return async () => (await import(\"./Execution/Animation/flowGraphPlayAnimationBlock\")).FlowGraphPlayAnimationBlock;\n case FlowGraphBlockNames.StopAnimation:\n return async () => (await import(\"./Execution/Animation/flowGraphStopAnimationBlock\")).FlowGraphStopAnimationBlock;\n case FlowGraphBlockNames.PauseAnimation:\n return async () => (await import(\"./Execution/Animation/flowGraphPauseAnimationBlock\")).FlowGraphPauseAnimationBlock;\n case FlowGraphBlockNames.ValueInterpolation:\n return async () => (await import(\"./Execution/Animation/flowGraphInterpolationBlock\")).FlowGraphInterpolationBlock;\n case FlowGraphBlockNames.SceneReadyEvent:\n return async () => (await import(\"./Event/flowGraphSceneReadyEventBlock\")).FlowGraphSceneReadyEventBlock;\n case FlowGraphBlockNames.SceneTickEvent:\n return async () => (await import(\"./Event/flowGraphSceneTickEventBlock\")).FlowGraphSceneTickEventBlock;\n case FlowGraphBlockNames.SendCustomEvent:\n return async () => (await import(\"./Event/flowGraphSendCustomEventBlock\")).FlowGraphSendCustomEventBlock;\n case FlowGraphBlockNames.ReceiveCustomEvent:\n return async () => (await import(\"./Event/flowGraphReceiveCustomEventBlock\")).FlowGraphReceiveCustomEventBlock;\n case FlowGraphBlockNames.StopEventPropagation:\n return async () => (await import(\"./Event/flowGraphStopEventPropagationBlock\")).FlowGraphStopEventPropagationBlock;\n case FlowGraphBlockNames.MeshPickEvent:\n return async () => (await import(\"./Event/flowGraphMeshPickEventBlock\")).FlowGraphMeshPickEventBlock;\n case FlowGraphBlockNames.E:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphEBlock;\n case FlowGraphBlockNames.PI:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphPiBlock;\n case FlowGraphBlockNames.Tau:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphTauBlock;\n case FlowGraphBlockNames.Inf:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphInfBlock;\n case FlowGraphBlockNames.NaN:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphNaNBlock;\n case FlowGraphBlockNames.Random:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphRandomBlock;\n case FlowGraphBlockNames.Add:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAddBlock;\n case FlowGraphBlockNames.Subtract:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSubtractBlock;\n case FlowGraphBlockNames.Multiply:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMultiplyBlock;\n case FlowGraphBlockNames.Divide:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphDivideBlock;\n case FlowGraphBlockNames.Abs:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAbsBlock;\n case FlowGraphBlockNames.Sign:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSignBlock;\n case FlowGraphBlockNames.Trunc:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphTruncBlock;\n case FlowGraphBlockNames.Floor:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphFloorBlock;\n case FlowGraphBlockNames.Ceil:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphCeilBlock;\n case FlowGraphBlockNames.Round:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphRoundBlock;\n case FlowGraphBlockNames.Fraction:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphFractionBlock;\n case FlowGraphBlockNames.Negation:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphNegationBlock;\n case FlowGraphBlockNames.Modulo:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphModuloBlock;\n case FlowGraphBlockNames.Min:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMinBlock;\n case FlowGraphBlockNames.Max:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMaxBlock;\n case FlowGraphBlockNames.Clamp:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphClampBlock;\n case FlowGraphBlockNames.Saturate:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSaturateBlock;\n case FlowGraphBlockNames.MathInterpolation:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMathInterpolationBlock;\n case FlowGraphBlockNames.MathSlerp:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMathSlerpBlock;\n case FlowGraphBlockNames.SmoothStep:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphMathSmoothStepBlock;\n case FlowGraphBlockNames.RGBToOkLCh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphRGBToOkLChBlock;\n case FlowGraphBlockNames.RGBFromOkLCh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphRGBFromOkLChBlock;\n case FlowGraphBlockNames.Equality:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphEqualityBlock;\n case FlowGraphBlockNames.LessThan:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLessThanBlock;\n case FlowGraphBlockNames.LessThanOrEqual:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLessThanOrEqualBlock;\n case FlowGraphBlockNames.GreaterThan:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphGreaterThanBlock;\n case FlowGraphBlockNames.GreaterThanOrEqual:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphGreaterThanOrEqualBlock;\n case FlowGraphBlockNames.IsNaN:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphIsNanBlock;\n case FlowGraphBlockNames.IsInfinity:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphIsInfinityBlock;\n case FlowGraphBlockNames.DegToRad:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphDegToRadBlock;\n case FlowGraphBlockNames.RadToDeg:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphRadToDegBlock;\n case FlowGraphBlockNames.Sin:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSinBlock;\n case FlowGraphBlockNames.Cos:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphCosBlock;\n case FlowGraphBlockNames.Tan:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphTanBlock;\n case FlowGraphBlockNames.Asin:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAsinBlock;\n case FlowGraphBlockNames.Acos:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAcosBlock;\n case FlowGraphBlockNames.Atan:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAtanBlock;\n case FlowGraphBlockNames.Atan2:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAtan2Block;\n case FlowGraphBlockNames.Sinh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSinhBlock;\n case FlowGraphBlockNames.Cosh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphCoshBlock;\n case FlowGraphBlockNames.Tanh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphTanhBlock;\n case FlowGraphBlockNames.Asinh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAsinhBlock;\n case FlowGraphBlockNames.Acosh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAcoshBlock;\n case FlowGraphBlockNames.Atanh:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphAtanhBlock;\n case FlowGraphBlockNames.Exponential:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphExpBlock;\n case FlowGraphBlockNames.Log:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLogBlock;\n case FlowGraphBlockNames.Log2:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLog2Block;\n case FlowGraphBlockNames.Log10:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLog10Block;\n case FlowGraphBlockNames.SquareRoot:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphSquareRootBlock;\n case FlowGraphBlockNames.Power:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphPowerBlock;\n case FlowGraphBlockNames.CubeRoot:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphCubeRootBlock;\n case FlowGraphBlockNames.BitwiseAnd:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseAndBlock;\n case FlowGraphBlockNames.BitwiseOr:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseOrBlock;\n case FlowGraphBlockNames.BitwiseNot:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseNotBlock;\n case FlowGraphBlockNames.BitwiseXor:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseXorBlock;\n case FlowGraphBlockNames.BitwiseLeftShift:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseLeftShiftBlock;\n case FlowGraphBlockNames.BitwiseRightShift:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphBitwiseRightShiftBlock;\n case FlowGraphBlockNames.Length:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphLengthBlock;\n case FlowGraphBlockNames.Normalize:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphNormalizeBlock;\n case FlowGraphBlockNames.Dot:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphDotBlock;\n case FlowGraphBlockNames.Cross:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphCrossBlock;\n case FlowGraphBlockNames.Rotate2D:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphRotate2DBlock;\n case FlowGraphBlockNames.Rotate3D:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphRotate3DBlock;\n case FlowGraphBlockNames.Transpose:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphTransposeBlock;\n case FlowGraphBlockNames.Determinant:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphDeterminantBlock;\n case FlowGraphBlockNames.InvertMatrix:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphInvertMatrixBlock;\n case FlowGraphBlockNames.MatrixMultiplication:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphMatrixMultiplicationBlock;\n case FlowGraphBlockNames.Branch:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphBranchBlock\")).FlowGraphBranchBlock;\n case FlowGraphBlockNames.SetDelay:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphSetDelayBlock\")).FlowGraphSetDelayBlock;\n case FlowGraphBlockNames.CancelDelay:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphCancelDelayBlock\")).FlowGraphCancelDelayBlock;\n case FlowGraphBlockNames.CallCounter:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphCounterBlock\")).FlowGraphCallCounterBlock;\n case FlowGraphBlockNames.Debounce:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphDebounceBlock\")).FlowGraphDebounceBlock;\n case FlowGraphBlockNames.Throttle:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphThrottleBlock\")).FlowGraphThrottleBlock;\n case FlowGraphBlockNames.DoN:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphDoNBlock\")).FlowGraphDoNBlock;\n case FlowGraphBlockNames.FlipFlop:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphFlipFlopBlock\")).FlowGraphFlipFlopBlock;\n case FlowGraphBlockNames.ForLoop:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphForLoopBlock\")).FlowGraphForLoopBlock;\n case FlowGraphBlockNames.MultiGate:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphMultiGateBlock\")).FlowGraphMultiGateBlock;\n case FlowGraphBlockNames.Sequence:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphSequenceBlock\")).FlowGraphSequenceBlock;\n case FlowGraphBlockNames.Switch:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphSwitchBlock\")).FlowGraphSwitchBlock;\n case FlowGraphBlockNames.WaitAll:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphWaitAllBlock\")).FlowGraphWaitAllBlock;\n case FlowGraphBlockNames.WhileLoop:\n return async () => (await import(\"./Execution/ControlFlow/flowGraphWhileLoopBlock\")).FlowGraphWhileLoopBlock;\n case FlowGraphBlockNames.ConsoleLog:\n return async () => (await import(\"./Execution/flowGraphConsoleLogBlock\")).FlowGraphConsoleLogBlock;\n case FlowGraphBlockNames.Conditional:\n return async () => (await import(\"./Data/flowGraphConditionalDataBlock\")).FlowGraphConditionalDataBlock;\n case FlowGraphBlockNames.Constant:\n return async () => (await import(\"./Data/flowGraphConstantBlock\")).FlowGraphConstantBlock;\n case FlowGraphBlockNames.TransformCoordinatesSystem:\n return async () => (await import(\"./Data/flowGraphTransformCoordinatesSystemBlock\")).FlowGraphTransformCoordinatesSystemBlock;\n case FlowGraphBlockNames.GetAsset:\n return async () => (await import(\"./Data/flowGraphGetAssetBlock\")).FlowGraphGetAssetBlock;\n case FlowGraphBlockNames.GetProperty:\n return async () => (await import(\"./Data/flowGraphGetPropertyBlock\")).FlowGraphGetPropertyBlock;\n case FlowGraphBlockNames.SetProperty:\n return async () => (await import(\"./Execution/flowGraphSetPropertyBlock\")).FlowGraphSetPropertyBlock;\n case FlowGraphBlockNames.GetVariable:\n return async () => (await import(\"./Data/flowGraphGetVariableBlock\")).FlowGraphGetVariableBlock;\n case FlowGraphBlockNames.SetVariable:\n return async () => (await import(\"./Execution/flowGraphSetVariableBlock\")).FlowGraphSetVariableBlock;\n case FlowGraphBlockNames.JsonPointerParser:\n return async () => (await import(\"./Data/Transformers/flowGraphJsonPointerParserBlock\")).FlowGraphJsonPointerParserBlock;\n case FlowGraphBlockNames.LeadingZeros:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphLeadingZerosBlock;\n case FlowGraphBlockNames.TrailingZeros:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphTrailingZerosBlock;\n case FlowGraphBlockNames.OneBitsCounter:\n return async () => (await import(\"./Data/Math/flowGraphMathBlocks\")).FlowGraphOneBitsCounterBlock;\n case FlowGraphBlockNames.CombineVector2:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineVector2Block;\n case FlowGraphBlockNames.CombineVector3:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineVector3Block;\n case FlowGraphBlockNames.CombineVector4:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineVector4Block;\n case FlowGraphBlockNames.CombineMatrix:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineMatrixBlock;\n case FlowGraphBlockNames.CombineMatrix2D:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineMatrix2DBlock;\n case FlowGraphBlockNames.CombineMatrix3D:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphCombineMatrix3DBlock;\n case FlowGraphBlockNames.ExtractVector2:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractVector2Block;\n case FlowGraphBlockNames.ExtractVector3:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractVector3Block;\n case FlowGraphBlockNames.ExtractVector4:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractVector4Block;\n case FlowGraphBlockNames.ExtractMatrix:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractMatrixBlock;\n case FlowGraphBlockNames.ExtractMatrix2D:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractMatrix2DBlock;\n case FlowGraphBlockNames.ExtractMatrix3D:\n return async () => (await import(\"./Data/Math/flowGraphMathCombineExtractBlocks\")).FlowGraphExtractMatrix3DBlock;\n case FlowGraphBlockNames.TransformVector:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphTransformBlock;\n case FlowGraphBlockNames.TransformCoordinates:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphTransformCoordinatesBlock;\n case FlowGraphBlockNames.Conjugate:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphConjugateBlock;\n case FlowGraphBlockNames.AngleBetween:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphAngleBetweenBlock;\n case FlowGraphBlockNames.QuaternionFromAxisAngle:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphQuaternionFromAxisAngleBlock;\n case FlowGraphBlockNames.AxisAngleFromQuaternion:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphAxisAngleFromQuaternionBlock;\n case FlowGraphBlockNames.QuaternionFromDirections:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphQuaternionFromDirectionsBlock;\n case FlowGraphBlockNames.QuaternionFromUpForward:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphQuaternionFromUpForwardBlock;\n case FlowGraphBlockNames.QuaternionFromAngles:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphQuaternionFromAnglesBlock;\n case FlowGraphBlockNames.VectorSlerp:\n return async () => (await import(\"./Data/Math/flowGraphVectorMathBlocks\")).FlowGraphVectorSlerpBlock;\n case FlowGraphBlockNames.MatrixDecompose:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphMatrixDecomposeBlock;\n case FlowGraphBlockNames.MatrixCompose:\n return async () => (await import(\"./Data/Math/flowGraphMatrixMathBlocks\")).FlowGraphMatrixComposeBlock;\n case FlowGraphBlockNames.BooleanToFloat:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphBooleanToFloat;\n case FlowGraphBlockNames.BooleanToInt:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphBooleanToInt;\n case FlowGraphBlockNames.FloatToBoolean:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphFloatToBoolean;\n case FlowGraphBlockNames.IntToBoolean:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphIntToBoolean;\n case FlowGraphBlockNames.IntToFloat:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphIntToFloat;\n case FlowGraphBlockNames.FloatToInt:\n return async () => (await import(\"./Data/Transformers/flowGraphTypeToTypeBlocks\")).FlowGraphFloatToInt;\n case FlowGraphBlockNames.Easing:\n return async () => (await import(\"./Execution/Animation/flowGraphEasingBlock\")).FlowGraphEasingBlock;\n case FlowGraphBlockNames.BezierCurveEasing:\n return async () => (await import(\"./Execution/Animation/flowGraphBezierCurveEasingBlock\")).FlowGraphBezierCurveEasingBlock;\n case FlowGraphBlockNames.PointerOverEvent:\n return async () => (await import(\"./Event/flowGraphPointerOverEventBlock\")).FlowGraphPointerOverEventBlock;\n case FlowGraphBlockNames.PointerOutEvent:\n return async () => (await import(\"./Event/flowGraphPointerOutEventBlock\")).FlowGraphPointerOutEventBlock;\n case FlowGraphBlockNames.PointerDownEvent:\n return async () => (await import(\"./Event/flowGraphPointerDownEventBlock\")).FlowGraphPointerDownEventBlock;\n case FlowGraphBlockNames.PointerUpEvent:\n return async () => (await import(\"./Event/flowGraphPointerUpEventBlock\")).FlowGraphPointerUpEventBlock;\n case FlowGraphBlockNames.PointerMoveEvent:\n return async () => (await import(\"./Event/flowGraphPointerMoveEventBlock\")).FlowGraphPointerMoveEventBlock;\n // Keyboard\n case FlowGraphBlockNames.KeyDownEvent:\n return async () => (await import(\"./Event/flowGraphKeyDownEventBlock\")).FlowGraphKeyDownEventBlock;\n case FlowGraphBlockNames.KeyUpEvent:\n return async () => (await import(\"./Event/flowGraphKeyUpEventBlock\")).FlowGraphKeyUpEventBlock;\n case FlowGraphBlockNames.IsKeyPressed:\n return async () => (await import(\"./Data/flowGraphIsKeyPressedBlock\")).FlowGraphIsKeyPressedBlock;\n case FlowGraphBlockNames.Context:\n return async () => (await import(\"./Data/Utils/flowGraphContextBlock\")).FlowGraphContextBlock;\n case FlowGraphBlockNames.ArrayIndex:\n return async () => (await import(\"./Data/Utils/flowGraphArrayIndexBlock\")).FlowGraphArrayIndexBlock;\n case FlowGraphBlockNames.CodeExecution:\n return async () => (await import(\"./Data/Utils/flowGraphCodeExecutionBlock\")).FlowGraphCodeExecutionBlock;\n case FlowGraphBlockNames.IndexOf:\n return async () => (await import(\"./Data/Utils/flowGraphIndexOfBlock\")).FlowGraphIndexOfBlock;\n case FlowGraphBlockNames.FunctionReference:\n return async () => (await import(\"./Data/Utils/flowGraphFunctionReferenceBlock\")).FlowGraphFunctionReferenceBlock;\n case FlowGraphBlockNames.DataSwitch:\n return async () => (await import(\"./Data/flowGraphDataSwitchBlock\")).FlowGraphDataSwitchBlock;\n case FlowGraphBlockNames.DebugBlock:\n return async () => (await import(\"./Data/flowGraphDebugBlock\")).FlowGraphDebugBlock;\n // Physics\n case FlowGraphBlockNames.PhysicsCollisionEvent:\n return async () => (await import(\"./Event/flowGraphPhysicsCollisionEventBlock\")).FlowGraphPhysicsCollisionEventBlock;\n case FlowGraphBlockNames.PhysicsApplyForce:\n return async () => (await import(\"./Execution/Physics/flowGraphApplyForceBlock\")).FlowGraphApplyForceBlock;\n case FlowGraphBlockNames.PhysicsApplyImpulse:\n return async () => (await import(\"./Execution/Physics/flowGraphApplyImpulseBlock\")).FlowGraphApplyImpulseBlock;\n case FlowGraphBlockNames.PhysicsSetLinearVelocity:\n return async () => (await import(\"./Execution/Physics/flowGraphSetLinearVelocityBlock\")).FlowGraphSetLinearVelocityBlock;\n case FlowGraphBlockNames.PhysicsSetAngularVelocity:\n return async () => (await import(\"./Execution/Physics/flowGraphSetAngularVelocityBlock\")).FlowGraphSetAngularVelocityBlock;\n case FlowGraphBlockNames.PhysicsSetMotionType:\n return async () => (await import(\"./Execution/Physics/flowGraphSetPhysicsMotionTypeBlock\")).FlowGraphSetPhysicsMotionTypeBlock;\n case FlowGraphBlockNames.PhysicsGetLinearVelocity:\n return async () => (await import(\"./Data/Physics/flowGraphGetLinearVelocityBlock\")).FlowGraphGetLinearVelocityBlock;\n case FlowGraphBlockNames.PhysicsGetAngularVelocity:\n return async () => (await import(\"./Data/Physics/flowGraphGetAngularVelocityBlock\")).FlowGraphGetAngularVelocityBlock;\n case FlowGraphBlockNames.PhysicsGetMassProperties:\n return async () => (await import(\"./Data/Physics/flowGraphGetPhysicsMassPropertiesBlock\")).FlowGraphGetPhysicsMassPropertiesBlock;\n // Audio\n case FlowGraphBlockNames.AudioPlaySound:\n return async () => (await import(\"./Execution/Audio/flowGraphPlaySoundBlock\")).FlowGraphPlaySoundBlock;\n case FlowGraphBlockNames.AudioStopSound:\n return async () => (await import(\"./Execution/Audio/flowGraphStopSoundBlock\")).FlowGraphStopSoundBlock;\n case FlowGraphBlockNames.AudioPauseSound:\n return async () => (await import(\"./Execution/Audio/flowGraphPauseSoundBlock\")).FlowGraphPauseSoundBlock;\n case FlowGraphBlockNames.AudioSetVolume:\n return async () => (await import(\"./Execution/Audio/flowGraphSetSoundVolumeBlock\")).FlowGraphSetSoundVolumeBlock;\n case FlowGraphBlockNames.AudioSoundEndedEvent:\n return async () => (await import(\"./Event/flowGraphSoundEndedEventBlock\")).FlowGraphSoundEndedEventBlock;\n case FlowGraphBlockNames.AudioGetVolume:\n return async () => (await import(\"./Data/Audio/flowGraphGetSoundVolumeBlock\")).FlowGraphGetSoundVolumeBlock;\n case FlowGraphBlockNames.AudioIsSoundPlaying:\n return async () => (await import(\"./Data/Audio/flowGraphIsSoundPlayingBlock\")).FlowGraphIsSoundPlayingBlock;\n default:\n // check if the block is a custom block\n if (CustomBlocks[blockName]) {\n return CustomBlocks[blockName];\n }\n // Fallback: O(1) reverse lookup by short name (e.g. \"FlowGraphGLTFDataProvider\" → \"KHR_interactivity/FlowGraphGLTFDataProvider\")\n if (!blockName.includes(\"/\")) {\n const fullKey = ShortNameToFullKey[blockName];\n if (fullKey && CustomBlocks[fullKey]) {\n return CustomBlocks[fullKey];\n }\n }\n throw new Error(`Unknown block name ${blockName}`);\n }\n}\n"]}
|
|
@@ -11,6 +11,7 @@ export declare enum FlowGraphBlockNames {
|
|
|
11
11
|
SceneTickEvent = "FlowGraphSceneTickEventBlock",
|
|
12
12
|
SendCustomEvent = "FlowGraphSendCustomEventBlock",
|
|
13
13
|
ReceiveCustomEvent = "FlowGraphReceiveCustomEventBlock",
|
|
14
|
+
StopEventPropagation = "FlowGraphStopEventPropagationBlock",
|
|
14
15
|
MeshPickEvent = "FlowGraphMeshPickEventBlock",
|
|
15
16
|
PointerEvent = "FlowGraphPointerEventBlock",
|
|
16
17
|
PointerDownEvent = "FlowGraphPointerDownEventBlock",
|
|
@@ -23,6 +24,7 @@ export declare enum FlowGraphBlockNames {
|
|
|
23
24
|
IsKeyPressed = "FlowGraphIsKeyPressedBlock",
|
|
24
25
|
E = "FlowGraphEBlock",
|
|
25
26
|
PI = "FlowGraphPIBlock",
|
|
27
|
+
Tau = "FlowGraphTauBlock",
|
|
26
28
|
Inf = "FlowGraphInfBlock",
|
|
27
29
|
NaN = "FlowGraphNaNBlock",
|
|
28
30
|
Random = "FlowGraphRandomBlock",
|
|
@@ -44,6 +46,10 @@ export declare enum FlowGraphBlockNames {
|
|
|
44
46
|
Clamp = "FlowGraphClampBlock",
|
|
45
47
|
Saturate = "FlowGraphSaturateBlock",
|
|
46
48
|
MathInterpolation = "FlowGraphMathInterpolationBlock",
|
|
49
|
+
MathSlerp = "FlowGraphMathSlerpBlock",
|
|
50
|
+
SmoothStep = "FlowGraphSmoothStepBlock",
|
|
51
|
+
RGBToOkLCh = "FlowGraphRGBToOkLChBlock",
|
|
52
|
+
RGBFromOkLCh = "FlowGraphRGBFromOkLChBlock",
|
|
47
53
|
Equality = "FlowGraphEqualityBlock",
|
|
48
54
|
LessThan = "FlowGraphLessThanBlock",
|
|
49
55
|
LessThanOrEqual = "FlowGraphLessThanOrEqualBlock",
|
|
@@ -135,6 +141,9 @@ export declare enum FlowGraphBlockNames {
|
|
|
135
141
|
QuaternionFromAxisAngle = "FlowGraphQuaternionFromAxisAngleBlock",
|
|
136
142
|
AxisAngleFromQuaternion = "FlowGraphAxisAngleFromQuaternionBlock",
|
|
137
143
|
QuaternionFromDirections = "FlowGraphQuaternionFromDirectionsBlock",
|
|
144
|
+
QuaternionFromUpForward = "FlowGraphQuaternionFromUpForwardBlock",
|
|
145
|
+
QuaternionFromAngles = "FlowGraphQuaternionFromAnglesBlock",
|
|
146
|
+
VectorSlerp = "FlowGraphVectorSlerpBlock",
|
|
138
147
|
MatrixDecompose = "FlowGraphMatrixDecompose",
|
|
139
148
|
MatrixCompose = "FlowGraphMatrixCompose",
|
|
140
149
|
BooleanToFloat = "FlowGraphBooleanToFloat",
|
|
@@ -12,6 +12,7 @@ export var FlowGraphBlockNames;
|
|
|
12
12
|
FlowGraphBlockNames["SceneTickEvent"] = "FlowGraphSceneTickEventBlock";
|
|
13
13
|
FlowGraphBlockNames["SendCustomEvent"] = "FlowGraphSendCustomEventBlock";
|
|
14
14
|
FlowGraphBlockNames["ReceiveCustomEvent"] = "FlowGraphReceiveCustomEventBlock";
|
|
15
|
+
FlowGraphBlockNames["StopEventPropagation"] = "FlowGraphStopEventPropagationBlock";
|
|
15
16
|
FlowGraphBlockNames["MeshPickEvent"] = "FlowGraphMeshPickEventBlock";
|
|
16
17
|
FlowGraphBlockNames["PointerEvent"] = "FlowGraphPointerEventBlock";
|
|
17
18
|
FlowGraphBlockNames["PointerDownEvent"] = "FlowGraphPointerDownEventBlock";
|
|
@@ -24,6 +25,7 @@ export var FlowGraphBlockNames;
|
|
|
24
25
|
FlowGraphBlockNames["IsKeyPressed"] = "FlowGraphIsKeyPressedBlock";
|
|
25
26
|
FlowGraphBlockNames["E"] = "FlowGraphEBlock";
|
|
26
27
|
FlowGraphBlockNames["PI"] = "FlowGraphPIBlock";
|
|
28
|
+
FlowGraphBlockNames["Tau"] = "FlowGraphTauBlock";
|
|
27
29
|
FlowGraphBlockNames["Inf"] = "FlowGraphInfBlock";
|
|
28
30
|
FlowGraphBlockNames["NaN"] = "FlowGraphNaNBlock";
|
|
29
31
|
FlowGraphBlockNames["Random"] = "FlowGraphRandomBlock";
|
|
@@ -45,6 +47,10 @@ export var FlowGraphBlockNames;
|
|
|
45
47
|
FlowGraphBlockNames["Clamp"] = "FlowGraphClampBlock";
|
|
46
48
|
FlowGraphBlockNames["Saturate"] = "FlowGraphSaturateBlock";
|
|
47
49
|
FlowGraphBlockNames["MathInterpolation"] = "FlowGraphMathInterpolationBlock";
|
|
50
|
+
FlowGraphBlockNames["MathSlerp"] = "FlowGraphMathSlerpBlock";
|
|
51
|
+
FlowGraphBlockNames["SmoothStep"] = "FlowGraphSmoothStepBlock";
|
|
52
|
+
FlowGraphBlockNames["RGBToOkLCh"] = "FlowGraphRGBToOkLChBlock";
|
|
53
|
+
FlowGraphBlockNames["RGBFromOkLCh"] = "FlowGraphRGBFromOkLChBlock";
|
|
48
54
|
FlowGraphBlockNames["Equality"] = "FlowGraphEqualityBlock";
|
|
49
55
|
FlowGraphBlockNames["LessThan"] = "FlowGraphLessThanBlock";
|
|
50
56
|
FlowGraphBlockNames["LessThanOrEqual"] = "FlowGraphLessThanOrEqualBlock";
|
|
@@ -136,6 +142,9 @@ export var FlowGraphBlockNames;
|
|
|
136
142
|
FlowGraphBlockNames["QuaternionFromAxisAngle"] = "FlowGraphQuaternionFromAxisAngleBlock";
|
|
137
143
|
FlowGraphBlockNames["AxisAngleFromQuaternion"] = "FlowGraphAxisAngleFromQuaternionBlock";
|
|
138
144
|
FlowGraphBlockNames["QuaternionFromDirections"] = "FlowGraphQuaternionFromDirectionsBlock";
|
|
145
|
+
FlowGraphBlockNames["QuaternionFromUpForward"] = "FlowGraphQuaternionFromUpForwardBlock";
|
|
146
|
+
FlowGraphBlockNames["QuaternionFromAngles"] = "FlowGraphQuaternionFromAnglesBlock";
|
|
147
|
+
FlowGraphBlockNames["VectorSlerp"] = "FlowGraphVectorSlerpBlock";
|
|
139
148
|
FlowGraphBlockNames["MatrixDecompose"] = "FlowGraphMatrixDecompose";
|
|
140
149
|
FlowGraphBlockNames["MatrixCompose"] = "FlowGraphMatrixCompose";
|
|
141
150
|
FlowGraphBlockNames["BooleanToFloat"] = "FlowGraphBooleanToFloat";
|