@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphBlockNames.js","sourceRoot":"","sources":["../../../../../dev/core/src/FlowGraph/Blocks/flowGraphBlockNames.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Enum of all block names.\n * Note - if you add a new block, you must add it here, and must add it in the block factory!\n */\nexport const enum FlowGraphBlockNames {\n PlayAnimation = \"FlowGraphPlayAnimationBlock\",\n StopAnimation = \"FlowGraphStopAnimationBlock\",\n PauseAnimation = \"FlowGraphPauseAnimationBlock\",\n ValueInterpolation = \"FlowGraphInterpolationBlock\",\n SceneReadyEvent = \"FlowGraphSceneReadyEventBlock\",\n SceneTickEvent = \"FlowGraphSceneTickEventBlock\",\n SendCustomEvent = \"FlowGraphSendCustomEventBlock\",\n ReceiveCustomEvent = \"FlowGraphReceiveCustomEventBlock\",\n MeshPickEvent = \"FlowGraphMeshPickEventBlock\",\n PointerEvent = \"FlowGraphPointerEventBlock\",\n PointerDownEvent = \"FlowGraphPointerDownEventBlock\",\n PointerUpEvent = \"FlowGraphPointerUpEventBlock\",\n PointerMoveEvent = \"FlowGraphPointerMoveEventBlock\",\n PointerOverEvent = \"FlowGraphPointerOverEventBlock\",\n PointerOutEvent = \"FlowGraphPointerOutEventBlock\",\n KeyDownEvent = \"FlowGraphKeyDownEventBlock\",\n KeyUpEvent = \"FlowGraphKeyUpEventBlock\",\n IsKeyPressed = \"FlowGraphIsKeyPressedBlock\",\n E = \"FlowGraphEBlock\",\n PI = \"FlowGraphPIBlock\",\n Inf = \"FlowGraphInfBlock\",\n NaN = \"FlowGraphNaNBlock\",\n Random = \"FlowGraphRandomBlock\",\n Add = \"FlowGraphAddBlock\",\n Subtract = \"FlowGraphSubtractBlock\",\n Multiply = \"FlowGraphMultiplyBlock\",\n Divide = \"FlowGraphDivideBlock\",\n Abs = \"FlowGraphAbsBlock\",\n Sign = \"FlowGraphSignBlock\",\n Trunc = \"FlowGraphTruncBlock\",\n Floor = \"FlowGraphFloorBlock\",\n Ceil = \"FlowGraphCeilBlock\",\n Round = \"FlowGraphRoundBlock\",\n Fraction = \"FlowGraphFractBlock\",\n Negation = \"FlowGraphNegationBlock\",\n Modulo = \"FlowGraphModuloBlock\",\n Min = \"FlowGraphMinBlock\",\n Max = \"FlowGraphMaxBlock\",\n Clamp = \"FlowGraphClampBlock\",\n Saturate = \"FlowGraphSaturateBlock\",\n MathInterpolation = \"FlowGraphMathInterpolationBlock\",\n Equality = \"FlowGraphEqualityBlock\",\n LessThan = \"FlowGraphLessThanBlock\",\n LessThanOrEqual = \"FlowGraphLessThanOrEqualBlock\",\n GreaterThan = \"FlowGraphGreaterThanBlock\",\n GreaterThanOrEqual = \"FlowGraphGreaterThanOrEqualBlock\",\n IsNaN = \"FlowGraphIsNaNBlock\",\n IsInfinity = \"FlowGraphIsInfBlock\",\n DegToRad = \"FlowGraphDegToRadBlock\",\n RadToDeg = \"FlowGraphRadToDegBlock\",\n Sin = \"FlowGraphSinBlock\",\n Cos = \"FlowGraphCosBlock\",\n Tan = \"FlowGraphTanBlock\",\n Asin = \"FlowGraphASinBlock\",\n Acos = \"FlowGraphACosBlock\",\n Atan = \"FlowGraphATanBlock\",\n Atan2 = \"FlowGraphATan2Block\",\n Sinh = \"FlowGraphSinhBlock\",\n Cosh = \"FlowGraphCoshBlock\",\n Tanh = \"FlowGraphTanhBlock\",\n Asinh = \"FlowGraphASinhBlock\",\n Acosh = \"FlowGraphACoshBlock\",\n Atanh = \"FlowGraphATanhBlock\",\n Exponential = \"FlowGraphExponentialBlock\",\n Log = \"FlowGraphLogBlock\",\n Log2 = \"FlowGraphLog2Block\",\n Log10 = \"FlowGraphLog10Block\",\n SquareRoot = \"FlowGraphSquareRootBlock\",\n CubeRoot = \"FlowGraphCubeRootBlock\",\n Power = \"FlowGraphPowerBlock\",\n Length = \"FlowGraphLengthBlock\",\n Normalize = \"FlowGraphNormalizeBlock\",\n Dot = \"FlowGraphDotBlock\",\n Cross = \"FlowGraphCrossBlock\",\n Rotate2D = \"FlowGraphRotate2DBlock\",\n Rotate3D = \"FlowGraphRotate3DBlock\",\n Transpose = \"FlowGraphTransposeBlock\",\n Determinant = \"FlowGraphDeterminantBlock\",\n InvertMatrix = \"FlowGraphInvertMatrixBlock\",\n MatrixMultiplication = \"FlowGraphMatrixMultiplicationBlock\",\n BitwiseAnd = \"FlowGraphBitwiseAndBlock\",\n BitwiseOr = \"FlowGraphBitwiseOrBlock\",\n BitwiseXor = \"FlowGraphBitwiseXorBlock\",\n BitwiseNot = \"FlowGraphBitwiseNotBlock\",\n BitwiseLeftShift = \"FlowGraphBitwiseLeftShiftBlock\",\n BitwiseRightShift = \"FlowGraphBitwiseRightShiftBlock\",\n LeadingZeros = \"FlowGraphLeadingZerosBlock\",\n TrailingZeros = \"FlowGraphTrailingZerosBlock\",\n OneBitsCounter = \"FlowGraphOneBitsCounterBlock\",\n Branch = \"FlowGraphBranchBlock\",\n SetDelay = \"FlowGraphSetDelayBlock\",\n CancelDelay = \"FlowGraphCancelDelayBlock\",\n CallCounter = \"FlowGraphCallCounterBlock\",\n Debounce = \"FlowGraphDebounceBlock\",\n Throttle = \"FlowGraphThrottleBlock\",\n DoN = \"FlowGraphDoNBlock\",\n FlipFlop = \"FlowGraphFlipFlopBlock\",\n ForLoop = \"FlowGraphForLoopBlock\",\n MultiGate = \"FlowGraphMultiGateBlock\",\n Sequence = \"FlowGraphSequenceBlock\",\n Switch = \"FlowGraphSwitchBlock\",\n WaitAll = \"FlowGraphWaitAllBlock\",\n WhileLoop = \"FlowGraphWhileLoopBlock\",\n ConsoleLog = \"FlowGraphConsoleLogBlock\",\n Conditional = \"FlowGraphConditionalBlock\",\n Constant = \"FlowGraphConstantBlock\",\n TransformCoordinatesSystem = \"FlowGraphTransformCoordinatesSystemBlock\",\n GetAsset = \"FlowGraphGetAssetBlock\",\n GetProperty = \"FlowGraphGetPropertyBlock\",\n SetProperty = \"FlowGraphSetPropertyBlock\",\n GetVariable = \"FlowGraphGetVariableBlock\",\n SetVariable = \"FlowGraphSetVariableBlock\",\n JsonPointerParser = \"FlowGraphJsonPointerParserBlock\",\n CombineVector2 = \"FlowGraphCombineVector2Block\",\n CombineVector3 = \"FlowGraphCombineVector3Block\",\n CombineVector4 = \"FlowGraphCombineVector4Block\",\n CombineMatrix = \"FlowGraphCombineMatrixBlock\",\n CombineMatrix2D = \"FlowGraphCombineMatrix2DBlock\",\n CombineMatrix3D = \"FlowGraphCombineMatrix3DBlock\",\n ExtractVector2 = \"FlowGraphExtractVector2Block\",\n ExtractVector3 = \"FlowGraphExtractVector3Block\",\n ExtractVector4 = \"FlowGraphExtractVector4Block\",\n ExtractMatrix = \"FlowGraphExtractMatrixBlock\",\n ExtractMatrix2D = \"FlowGraphExtractMatrix2DBlock\",\n ExtractMatrix3D = \"FlowGraphExtractMatrix3DBlock\",\n TransformVector = \"FlowGraphTransformVectorBlock\",\n TransformCoordinates = \"FlowGraphTransformCoordinatesBlock\",\n Conjugate = \"FlowGraphConjugateBlock\",\n AngleBetween = \"FlowGraphAngleBetweenBlock\",\n QuaternionFromAxisAngle = \"FlowGraphQuaternionFromAxisAngleBlock\",\n AxisAngleFromQuaternion = \"FlowGraphAxisAngleFromQuaternionBlock\",\n QuaternionFromDirections = \"FlowGraphQuaternionFromDirectionsBlock\",\n MatrixDecompose = \"FlowGraphMatrixDecompose\",\n MatrixCompose = \"FlowGraphMatrixCompose\",\n BooleanToFloat = \"FlowGraphBooleanToFloat\",\n BooleanToInt = \"FlowGraphBooleanToInt\",\n FloatToBoolean = \"FlowGraphFloatToBoolean\",\n IntToBoolean = \"FlowGraphIntToBoolean\",\n IntToFloat = \"FlowGraphIntToFloat\",\n FloatToInt = \"FlowGraphFloatToInt\",\n Easing = \"FlowGraphEasingBlock\",\n Context = \"FlowGraphContextBlock\",\n ArrayIndex = \"FlowGraphArrayIndexBlock\",\n CodeExecution = \"FlowGraphCodeExecutionBlock\",\n IndexOf = \"FlowGraphIndexOfBlock\",\n FunctionReference = \"FlowGraphFunctionReference\",\n BezierCurveEasing = \"FlowGraphBezierCurveEasing\",\n DataSwitch = \"FlowGraphDataSwitchBlock\",\n DebugBlock = \"FlowGraphDebugBlock\",\n // Physics\n PhysicsCollisionEvent = \"FlowGraphPhysicsCollisionEventBlock\",\n PhysicsApplyForce = \"FlowGraphApplyForceBlock\",\n PhysicsApplyImpulse = \"FlowGraphApplyImpulseBlock\",\n PhysicsSetLinearVelocity = \"FlowGraphSetLinearVelocityBlock\",\n PhysicsSetAngularVelocity = \"FlowGraphSetAngularVelocityBlock\",\n PhysicsSetMotionType = \"FlowGraphSetPhysicsMotionTypeBlock\",\n PhysicsGetLinearVelocity = \"FlowGraphGetLinearVelocityBlock\",\n PhysicsGetAngularVelocity = \"FlowGraphGetAngularVelocityBlock\",\n PhysicsGetMassProperties = \"FlowGraphGetPhysicsMassPropertiesBlock\",\n // Audio\n AudioPlaySound = \"FlowGraphPlaySoundBlock\",\n AudioStopSound = \"FlowGraphStopSoundBlock\",\n AudioPauseSound = \"FlowGraphPauseSoundBlock\",\n AudioSetVolume = \"FlowGraphSetSoundVolumeBlock\",\n AudioSoundEndedEvent = \"FlowGraphSoundEndedEventBlock\",\n AudioGetVolume = \"FlowGraphGetSoundVolumeBlock\",\n AudioIsSoundPlaying = \"FlowGraphIsSoundPlayingBlock\",\n}\n"]}
|
|
1
|
+
{"version":3,"file":"flowGraphBlockNames.js","sourceRoot":"","sources":["../../../../../dev/core/src/FlowGraph/Blocks/flowGraphBlockNames.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Enum of all block names.\n * Note - if you add a new block, you must add it here, and must add it in the block factory!\n */\nexport const enum FlowGraphBlockNames {\n PlayAnimation = \"FlowGraphPlayAnimationBlock\",\n StopAnimation = \"FlowGraphStopAnimationBlock\",\n PauseAnimation = \"FlowGraphPauseAnimationBlock\",\n ValueInterpolation = \"FlowGraphInterpolationBlock\",\n SceneReadyEvent = \"FlowGraphSceneReadyEventBlock\",\n SceneTickEvent = \"FlowGraphSceneTickEventBlock\",\n SendCustomEvent = \"FlowGraphSendCustomEventBlock\",\n ReceiveCustomEvent = \"FlowGraphReceiveCustomEventBlock\",\n StopEventPropagation = \"FlowGraphStopEventPropagationBlock\",\n MeshPickEvent = \"FlowGraphMeshPickEventBlock\",\n PointerEvent = \"FlowGraphPointerEventBlock\",\n PointerDownEvent = \"FlowGraphPointerDownEventBlock\",\n PointerUpEvent = \"FlowGraphPointerUpEventBlock\",\n PointerMoveEvent = \"FlowGraphPointerMoveEventBlock\",\n PointerOverEvent = \"FlowGraphPointerOverEventBlock\",\n PointerOutEvent = \"FlowGraphPointerOutEventBlock\",\n KeyDownEvent = \"FlowGraphKeyDownEventBlock\",\n KeyUpEvent = \"FlowGraphKeyUpEventBlock\",\n IsKeyPressed = \"FlowGraphIsKeyPressedBlock\",\n E = \"FlowGraphEBlock\",\n PI = \"FlowGraphPIBlock\",\n Tau = \"FlowGraphTauBlock\",\n Inf = \"FlowGraphInfBlock\",\n NaN = \"FlowGraphNaNBlock\",\n Random = \"FlowGraphRandomBlock\",\n Add = \"FlowGraphAddBlock\",\n Subtract = \"FlowGraphSubtractBlock\",\n Multiply = \"FlowGraphMultiplyBlock\",\n Divide = \"FlowGraphDivideBlock\",\n Abs = \"FlowGraphAbsBlock\",\n Sign = \"FlowGraphSignBlock\",\n Trunc = \"FlowGraphTruncBlock\",\n Floor = \"FlowGraphFloorBlock\",\n Ceil = \"FlowGraphCeilBlock\",\n Round = \"FlowGraphRoundBlock\",\n Fraction = \"FlowGraphFractBlock\",\n Negation = \"FlowGraphNegationBlock\",\n Modulo = \"FlowGraphModuloBlock\",\n Min = \"FlowGraphMinBlock\",\n Max = \"FlowGraphMaxBlock\",\n Clamp = \"FlowGraphClampBlock\",\n Saturate = \"FlowGraphSaturateBlock\",\n MathInterpolation = \"FlowGraphMathInterpolationBlock\",\n MathSlerp = \"FlowGraphMathSlerpBlock\",\n SmoothStep = \"FlowGraphSmoothStepBlock\",\n RGBToOkLCh = \"FlowGraphRGBToOkLChBlock\",\n RGBFromOkLCh = \"FlowGraphRGBFromOkLChBlock\",\n Equality = \"FlowGraphEqualityBlock\",\n LessThan = \"FlowGraphLessThanBlock\",\n LessThanOrEqual = \"FlowGraphLessThanOrEqualBlock\",\n GreaterThan = \"FlowGraphGreaterThanBlock\",\n GreaterThanOrEqual = \"FlowGraphGreaterThanOrEqualBlock\",\n IsNaN = \"FlowGraphIsNaNBlock\",\n IsInfinity = \"FlowGraphIsInfBlock\",\n DegToRad = \"FlowGraphDegToRadBlock\",\n RadToDeg = \"FlowGraphRadToDegBlock\",\n Sin = \"FlowGraphSinBlock\",\n Cos = \"FlowGraphCosBlock\",\n Tan = \"FlowGraphTanBlock\",\n Asin = \"FlowGraphASinBlock\",\n Acos = \"FlowGraphACosBlock\",\n Atan = \"FlowGraphATanBlock\",\n Atan2 = \"FlowGraphATan2Block\",\n Sinh = \"FlowGraphSinhBlock\",\n Cosh = \"FlowGraphCoshBlock\",\n Tanh = \"FlowGraphTanhBlock\",\n Asinh = \"FlowGraphASinhBlock\",\n Acosh = \"FlowGraphACoshBlock\",\n Atanh = \"FlowGraphATanhBlock\",\n Exponential = \"FlowGraphExponentialBlock\",\n Log = \"FlowGraphLogBlock\",\n Log2 = \"FlowGraphLog2Block\",\n Log10 = \"FlowGraphLog10Block\",\n SquareRoot = \"FlowGraphSquareRootBlock\",\n CubeRoot = \"FlowGraphCubeRootBlock\",\n Power = \"FlowGraphPowerBlock\",\n Length = \"FlowGraphLengthBlock\",\n Normalize = \"FlowGraphNormalizeBlock\",\n Dot = \"FlowGraphDotBlock\",\n Cross = \"FlowGraphCrossBlock\",\n Rotate2D = \"FlowGraphRotate2DBlock\",\n Rotate3D = \"FlowGraphRotate3DBlock\",\n Transpose = \"FlowGraphTransposeBlock\",\n Determinant = \"FlowGraphDeterminantBlock\",\n InvertMatrix = \"FlowGraphInvertMatrixBlock\",\n MatrixMultiplication = \"FlowGraphMatrixMultiplicationBlock\",\n BitwiseAnd = \"FlowGraphBitwiseAndBlock\",\n BitwiseOr = \"FlowGraphBitwiseOrBlock\",\n BitwiseXor = \"FlowGraphBitwiseXorBlock\",\n BitwiseNot = \"FlowGraphBitwiseNotBlock\",\n BitwiseLeftShift = \"FlowGraphBitwiseLeftShiftBlock\",\n BitwiseRightShift = \"FlowGraphBitwiseRightShiftBlock\",\n LeadingZeros = \"FlowGraphLeadingZerosBlock\",\n TrailingZeros = \"FlowGraphTrailingZerosBlock\",\n OneBitsCounter = \"FlowGraphOneBitsCounterBlock\",\n Branch = \"FlowGraphBranchBlock\",\n SetDelay = \"FlowGraphSetDelayBlock\",\n CancelDelay = \"FlowGraphCancelDelayBlock\",\n CallCounter = \"FlowGraphCallCounterBlock\",\n Debounce = \"FlowGraphDebounceBlock\",\n Throttle = \"FlowGraphThrottleBlock\",\n DoN = \"FlowGraphDoNBlock\",\n FlipFlop = \"FlowGraphFlipFlopBlock\",\n ForLoop = \"FlowGraphForLoopBlock\",\n MultiGate = \"FlowGraphMultiGateBlock\",\n Sequence = \"FlowGraphSequenceBlock\",\n Switch = \"FlowGraphSwitchBlock\",\n WaitAll = \"FlowGraphWaitAllBlock\",\n WhileLoop = \"FlowGraphWhileLoopBlock\",\n ConsoleLog = \"FlowGraphConsoleLogBlock\",\n Conditional = \"FlowGraphConditionalBlock\",\n Constant = \"FlowGraphConstantBlock\",\n TransformCoordinatesSystem = \"FlowGraphTransformCoordinatesSystemBlock\",\n GetAsset = \"FlowGraphGetAssetBlock\",\n GetProperty = \"FlowGraphGetPropertyBlock\",\n SetProperty = \"FlowGraphSetPropertyBlock\",\n GetVariable = \"FlowGraphGetVariableBlock\",\n SetVariable = \"FlowGraphSetVariableBlock\",\n JsonPointerParser = \"FlowGraphJsonPointerParserBlock\",\n CombineVector2 = \"FlowGraphCombineVector2Block\",\n CombineVector3 = \"FlowGraphCombineVector3Block\",\n CombineVector4 = \"FlowGraphCombineVector4Block\",\n CombineMatrix = \"FlowGraphCombineMatrixBlock\",\n CombineMatrix2D = \"FlowGraphCombineMatrix2DBlock\",\n CombineMatrix3D = \"FlowGraphCombineMatrix3DBlock\",\n ExtractVector2 = \"FlowGraphExtractVector2Block\",\n ExtractVector3 = \"FlowGraphExtractVector3Block\",\n ExtractVector4 = \"FlowGraphExtractVector4Block\",\n ExtractMatrix = \"FlowGraphExtractMatrixBlock\",\n ExtractMatrix2D = \"FlowGraphExtractMatrix2DBlock\",\n ExtractMatrix3D = \"FlowGraphExtractMatrix3DBlock\",\n TransformVector = \"FlowGraphTransformVectorBlock\",\n TransformCoordinates = \"FlowGraphTransformCoordinatesBlock\",\n Conjugate = \"FlowGraphConjugateBlock\",\n AngleBetween = \"FlowGraphAngleBetweenBlock\",\n QuaternionFromAxisAngle = \"FlowGraphQuaternionFromAxisAngleBlock\",\n AxisAngleFromQuaternion = \"FlowGraphAxisAngleFromQuaternionBlock\",\n QuaternionFromDirections = \"FlowGraphQuaternionFromDirectionsBlock\",\n QuaternionFromUpForward = \"FlowGraphQuaternionFromUpForwardBlock\",\n QuaternionFromAngles = \"FlowGraphQuaternionFromAnglesBlock\",\n VectorSlerp = \"FlowGraphVectorSlerpBlock\",\n MatrixDecompose = \"FlowGraphMatrixDecompose\",\n MatrixCompose = \"FlowGraphMatrixCompose\",\n BooleanToFloat = \"FlowGraphBooleanToFloat\",\n BooleanToInt = \"FlowGraphBooleanToInt\",\n FloatToBoolean = \"FlowGraphFloatToBoolean\",\n IntToBoolean = \"FlowGraphIntToBoolean\",\n IntToFloat = \"FlowGraphIntToFloat\",\n FloatToInt = \"FlowGraphFloatToInt\",\n Easing = \"FlowGraphEasingBlock\",\n Context = \"FlowGraphContextBlock\",\n ArrayIndex = \"FlowGraphArrayIndexBlock\",\n CodeExecution = \"FlowGraphCodeExecutionBlock\",\n IndexOf = \"FlowGraphIndexOfBlock\",\n FunctionReference = \"FlowGraphFunctionReference\",\n BezierCurveEasing = \"FlowGraphBezierCurveEasing\",\n DataSwitch = \"FlowGraphDataSwitchBlock\",\n DebugBlock = \"FlowGraphDebugBlock\",\n // Physics\n PhysicsCollisionEvent = \"FlowGraphPhysicsCollisionEventBlock\",\n PhysicsApplyForce = \"FlowGraphApplyForceBlock\",\n PhysicsApplyImpulse = \"FlowGraphApplyImpulseBlock\",\n PhysicsSetLinearVelocity = \"FlowGraphSetLinearVelocityBlock\",\n PhysicsSetAngularVelocity = \"FlowGraphSetAngularVelocityBlock\",\n PhysicsSetMotionType = \"FlowGraphSetPhysicsMotionTypeBlock\",\n PhysicsGetLinearVelocity = \"FlowGraphGetLinearVelocityBlock\",\n PhysicsGetAngularVelocity = \"FlowGraphGetAngularVelocityBlock\",\n PhysicsGetMassProperties = \"FlowGraphGetPhysicsMassPropertiesBlock\",\n // Audio\n AudioPlaySound = \"FlowGraphPlaySoundBlock\",\n AudioStopSound = \"FlowGraphStopSoundBlock\",\n AudioPauseSound = \"FlowGraphPauseSoundBlock\",\n AudioSetVolume = \"FlowGraphSetSoundVolumeBlock\",\n AudioSoundEndedEvent = \"FlowGraphSoundEndedEventBlock\",\n AudioGetVolume = \"FlowGraphGetSoundVolumeBlock\",\n AudioIsSoundPlaying = \"FlowGraphIsSoundPlayingBlock\",\n}\n"]}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { Vector3, Vector2 } from "../../Maths/math.vector.pure.js";
|
|
2
2
|
/**
|
|
3
3
|
* Interface representing a generic flow graph matrix.
|
|
4
|
+
*
|
|
5
|
+
* BREAKING (since the KHR_interactivity work): {@link FlowGraphMatrix2D} and {@link FlowGraphMatrix3D}
|
|
6
|
+
* now store their elements in column-major order, matching core {@link Matrix} and the
|
|
7
|
+
* glTF/KHR_interactivity convention. Previous releases stored them row-major. This changes the result
|
|
8
|
+
* of building a matrix from a flat array (`fromArray`/`set`), of `transformVector`/`transformVectorToRef`,
|
|
9
|
+
* and of `multiply`/`multiplyToRef` (which now computes `this * other` rather than `other * this`).
|
|
10
|
+
* There is no compile error — graphs that relied on the old ordering or operand order get silently
|
|
11
|
+
* different numbers, so any code constructing these from raw arrays should be re-checked.
|
|
4
12
|
*/
|
|
5
13
|
export interface IFlowGraphMatrix<VectorType> {
|
|
6
14
|
/**
|
|
7
|
-
* The matrix elements stored in
|
|
15
|
+
* The matrix elements stored in column-major order.
|
|
8
16
|
*/
|
|
9
17
|
m: number[];
|
|
10
18
|
/**
|
|
@@ -138,7 +146,10 @@ export interface IFlowGraphMatrix<VectorType> {
|
|
|
138
146
|
equals(other: IFlowGraphMatrix<VectorType>, epsilon?: number): boolean;
|
|
139
147
|
}
|
|
140
148
|
/**
|
|
141
|
-
* A 2x2 matrix.
|
|
149
|
+
* A 2x2 matrix, stored in column-major order.
|
|
150
|
+
*
|
|
151
|
+
* BREAKING: this class was row-major in earlier releases — see {@link IFlowGraphMatrix} for the full
|
|
152
|
+
* behaviour change (flat-array construction, transform, and multiply operand order).
|
|
142
153
|
*/
|
|
143
154
|
export declare class FlowGraphMatrix2D implements IFlowGraphMatrix<Vector2> {
|
|
144
155
|
/**
|
|
@@ -168,7 +179,10 @@ export declare class FlowGraphMatrix2D implements IFlowGraphMatrix<Vector2> {
|
|
|
168
179
|
toString(): string;
|
|
169
180
|
}
|
|
170
181
|
/**
|
|
171
|
-
* A 3x3 matrix.
|
|
182
|
+
* A 3x3 matrix, stored in column-major order.
|
|
183
|
+
*
|
|
184
|
+
* BREAKING: this class was row-major in earlier releases — see {@link IFlowGraphMatrix} for the full
|
|
185
|
+
* behaviour change (flat-array construction, transform, and multiply operand order).
|
|
172
186
|
*/
|
|
173
187
|
export declare class FlowGraphMatrix3D implements IFlowGraphMatrix<Vector3> {
|
|
174
188
|
/**
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Vector3, Vector2 } from "../../Maths/math.vector.pure.js";
|
|
2
2
|
// Note - the matrix classes are basically column-major, and work similarly to Babylon.js' Matrix class.
|
|
3
3
|
/**
|
|
4
|
-
* A 2x2 matrix.
|
|
4
|
+
* A 2x2 matrix, stored in column-major order.
|
|
5
|
+
*
|
|
6
|
+
* BREAKING: this class was row-major in earlier releases — see {@link IFlowGraphMatrix} for the full
|
|
7
|
+
* behaviour change (flat-array construction, transform, and multiply operand order).
|
|
5
8
|
*/
|
|
6
9
|
export class FlowGraphMatrix2D {
|
|
7
10
|
constructor(m = [1, 0, 0, 1]) {
|
|
@@ -14,8 +17,8 @@ export class FlowGraphMatrix2D {
|
|
|
14
17
|
return this.transformVectorToRef(v, new Vector2());
|
|
15
18
|
}
|
|
16
19
|
transformVectorToRef(v, result) {
|
|
17
|
-
result.x = v.x * this._m[0] + v.y * this._m[
|
|
18
|
-
result.y = v.x * this._m[
|
|
20
|
+
result.x = v.x * this._m[0] + v.y * this._m[2];
|
|
21
|
+
result.y = v.x * this._m[1] + v.y * this._m[3];
|
|
19
22
|
return result;
|
|
20
23
|
}
|
|
21
24
|
asArray() {
|
|
@@ -37,11 +40,11 @@ export class FlowGraphMatrix2D {
|
|
|
37
40
|
const otherMatrix = other._m;
|
|
38
41
|
const thisMatrix = this._m;
|
|
39
42
|
const r = result._m;
|
|
40
|
-
//
|
|
41
|
-
r[0] =
|
|
42
|
-
r[1] =
|
|
43
|
-
r[2] =
|
|
44
|
-
r[3] =
|
|
43
|
+
// this * other, column-major (matches core Matrix and the glTF/KHR_interactivity convention)
|
|
44
|
+
r[0] = thisMatrix[0] * otherMatrix[0] + thisMatrix[1] * otherMatrix[2];
|
|
45
|
+
r[1] = thisMatrix[0] * otherMatrix[1] + thisMatrix[1] * otherMatrix[3];
|
|
46
|
+
r[2] = thisMatrix[2] * otherMatrix[0] + thisMatrix[3] * otherMatrix[2];
|
|
47
|
+
r[3] = thisMatrix[2] * otherMatrix[1] + thisMatrix[3] * otherMatrix[3];
|
|
45
48
|
return result;
|
|
46
49
|
}
|
|
47
50
|
multiply(other) {
|
|
@@ -119,7 +122,10 @@ export class FlowGraphMatrix2D {
|
|
|
119
122
|
}
|
|
120
123
|
}
|
|
121
124
|
/**
|
|
122
|
-
* A 3x3 matrix.
|
|
125
|
+
* A 3x3 matrix, stored in column-major order.
|
|
126
|
+
*
|
|
127
|
+
* BREAKING: this class was row-major in earlier releases — see {@link IFlowGraphMatrix} for the full
|
|
128
|
+
* behaviour change (flat-array construction, transform, and multiply operand order).
|
|
123
129
|
*/
|
|
124
130
|
export class FlowGraphMatrix3D {
|
|
125
131
|
constructor(array = [1, 0, 0, 0, 1, 0, 0, 0, 1]) {
|
|
@@ -133,24 +139,24 @@ export class FlowGraphMatrix3D {
|
|
|
133
139
|
}
|
|
134
140
|
transformVectorToRef(v, result) {
|
|
135
141
|
const m = this._m;
|
|
136
|
-
result.x = v.x * m[0] + v.y * m[
|
|
137
|
-
result.y = v.x * m[
|
|
138
|
-
result.z = v.x * m[
|
|
142
|
+
result.x = v.x * m[0] + v.y * m[3] + v.z * m[6];
|
|
143
|
+
result.y = v.x * m[1] + v.y * m[4] + v.z * m[7];
|
|
144
|
+
result.z = v.x * m[2] + v.y * m[5] + v.z * m[8];
|
|
139
145
|
return result;
|
|
140
146
|
}
|
|
141
147
|
multiplyToRef(other, result) {
|
|
142
148
|
const otherMatrix = other._m;
|
|
143
149
|
const thisMatrix = this._m;
|
|
144
150
|
const r = result.m;
|
|
145
|
-
r[0] =
|
|
146
|
-
r[1] =
|
|
147
|
-
r[2] =
|
|
148
|
-
r[3] =
|
|
149
|
-
r[4] =
|
|
150
|
-
r[5] =
|
|
151
|
-
r[6] =
|
|
152
|
-
r[7] =
|
|
153
|
-
r[8] =
|
|
151
|
+
r[0] = thisMatrix[0] * otherMatrix[0] + thisMatrix[1] * otherMatrix[3] + thisMatrix[2] * otherMatrix[6];
|
|
152
|
+
r[1] = thisMatrix[0] * otherMatrix[1] + thisMatrix[1] * otherMatrix[4] + thisMatrix[2] * otherMatrix[7];
|
|
153
|
+
r[2] = thisMatrix[0] * otherMatrix[2] + thisMatrix[1] * otherMatrix[5] + thisMatrix[2] * otherMatrix[8];
|
|
154
|
+
r[3] = thisMatrix[3] * otherMatrix[0] + thisMatrix[4] * otherMatrix[3] + thisMatrix[5] * otherMatrix[6];
|
|
155
|
+
r[4] = thisMatrix[3] * otherMatrix[1] + thisMatrix[4] * otherMatrix[4] + thisMatrix[5] * otherMatrix[7];
|
|
156
|
+
r[5] = thisMatrix[3] * otherMatrix[2] + thisMatrix[4] * otherMatrix[5] + thisMatrix[5] * otherMatrix[8];
|
|
157
|
+
r[6] = thisMatrix[6] * otherMatrix[0] + thisMatrix[7] * otherMatrix[3] + thisMatrix[8] * otherMatrix[6];
|
|
158
|
+
r[7] = thisMatrix[6] * otherMatrix[1] + thisMatrix[7] * otherMatrix[4] + thisMatrix[8] * otherMatrix[7];
|
|
159
|
+
r[8] = thisMatrix[6] * otherMatrix[2] + thisMatrix[7] * otherMatrix[5] + thisMatrix[8] * otherMatrix[8];
|
|
154
160
|
return result;
|
|
155
161
|
}
|
|
156
162
|
multiply(other) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphMatrix.js","sourceRoot":"","sources":["../../../../../dev/core/src/FlowGraph/CustomTypes/flowGraphMatrix.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector3, Vector2 } from \"core/Maths/math.vector.pure\";\n\n/**\n * Interface representing a generic flow graph matrix.\n */\nexport interface IFlowGraphMatrix<VectorType> {\n /**\n * The matrix elements stored in a row-major order.\n */\n m: number[];\n\n /**\n * Transforms a vector using this matrix.\n *\n * @param v - The vector to transform.\n * @returns The transformed vector.\n */\n transformVector(v: VectorType): VectorType;\n\n /**\n * Transforms a vector using this matrix and stores the result in a reference vector.\n *\n * @param v - The vector to transform.\n * @param result - The vector to store the result.\n * @returns The transformed vector.\n */\n transformVectorToRef(v: VectorType, result: VectorType): VectorType;\n\n /**\n * Returns the matrix elements as an array.\n *\n * @returns The matrix elements as an array.\n */\n asArray(): number[];\n\n /**\n * Copies the matrix elements to an array.\n *\n * @param emptyArray - The array to copy the elements to.\n * @returns The array with the matrix elements.\n */\n toArray(emptyArray: number[]): number[];\n\n /**\n * Sets the matrix elements from an array.\n *\n * @param array - The array containing the matrix elements.\n * @returns The updated matrix.\n */\n fromArray(array: number[]): IFlowGraphMatrix<VectorType>;\n\n /**\n * Multiplies this matrix with another matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to multiply with.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n multiplyToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Multiplies this matrix with another matrix.\n * To staz conform with the Matrix class, this does B * A\n *\n * @param other - The matrix to multiply with.\n * @returns The result matrix.\n */\n multiply(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Divides this matrix by another matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to divide by.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n divideToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Divides this matrix by another matrix.\n *\n * @param other - The matrix to divide by.\n * @returns The result matrix.\n */\n divide(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Adds another matrix to this matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to add.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n addToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Adds another matrix to this matrix.\n *\n * @param other - The matrix to add.\n * @returns The result matrix.\n */\n add(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Subtracts another matrix from this matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to subtract.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n subtractToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Subtracts another matrix from this matrix.\n *\n * @param other - The matrix to subtract.\n * @returns The result matrix.\n */\n subtract(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Transposes this matrix.\n *\n * @returns The transposed matrix.\n */\n transpose(): IFlowGraphMatrix<VectorType>;\n\n /**\n * Computes the determinant of this matrix.\n *\n * @returns The determinant of the matrix.\n */\n determinant(): number;\n\n /**\n * Computes the inverse of this matrix.\n *\n * @returns The inverse of the matrix.\n * @throws Error if the matrix is not invertible.\n */\n inverse(): IFlowGraphMatrix<VectorType>;\n\n /**\n * Gets the class name of this matrix.\n *\n * @returns The class name.\n */\n getClassName(): string;\n\n /**\n * Checks if this matrix is equal to another matrix within an optional epsilon.\n *\n * @param other - The matrix to compare with.\n * @param epsilon - The optional epsilon for comparison.\n * @returns True if the matrices are equal, false otherwise.\n */\n equals(other: IFlowGraphMatrix<VectorType>, epsilon?: number): boolean;\n}\n\n// Note - the matrix classes are basically column-major, and work similarly to Babylon.js' Matrix class.\n\n/**\n * A 2x2 matrix.\n */\nexport class FlowGraphMatrix2D implements IFlowGraphMatrix<Vector2> {\n /**\n * @internal\n */\n public _m: number[];\n\n constructor(m: number[] = [1, 0, 0, 1]) {\n this._m = m;\n }\n\n public get m(): number[] {\n return this._m;\n }\n\n public transformVector(v: Vector2): Vector2 {\n return this.transformVectorToRef(v, new Vector2());\n }\n\n public transformVectorToRef(v: Vector2, result: Vector2): Vector2 {\n result.x = v.x * this._m[0] + v.y * this._m[1];\n result.y = v.x * this._m[2] + v.y * this._m[3];\n return result;\n }\n\n public asArray(): number[] {\n return this.toArray();\n }\n\n public toArray(emptyArray: number[] = []): number[] {\n for (let i = 0; i < 4; i++) {\n emptyArray[i] = this._m[i];\n }\n return emptyArray;\n }\n\n public fromArray(array: number[]): FlowGraphMatrix2D {\n for (let i = 0; i < 4; i++) {\n this._m[i] = array[i];\n }\n return this;\n }\n\n public multiplyToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const otherMatrix = other._m;\n const thisMatrix = this._m;\n const r = result._m;\n // other * this\n r[0] = otherMatrix[0] * thisMatrix[0] + otherMatrix[1] * thisMatrix[2];\n r[1] = otherMatrix[0] * thisMatrix[1] + otherMatrix[1] * thisMatrix[3];\n r[2] = otherMatrix[2] * thisMatrix[0] + otherMatrix[3] * thisMatrix[2];\n r[3] = otherMatrix[2] * thisMatrix[1] + otherMatrix[3] * thisMatrix[3];\n\n return result;\n }\n\n public multiply(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.multiplyToRef(other, new FlowGraphMatrix2D());\n }\n\n public divideToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other._m;\n const r = result._m;\n\n r[0] = m[0] / o[0];\n r[1] = m[1] / o[1];\n r[2] = m[2] / o[2];\n r[3] = m[3] / o[3];\n\n return result;\n }\n\n public divide(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.divideToRef(other, new FlowGraphMatrix2D());\n }\n\n public addToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] + o[0];\n r[1] = m[1] + o[1];\n r[2] = m[2] + o[2];\n r[3] = m[3] + o[3];\n\n return result;\n }\n\n public add(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.addToRef(other, new FlowGraphMatrix2D());\n }\n\n public subtractToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] - o[0];\n r[1] = m[1] - o[1];\n r[2] = m[2] - o[2];\n r[3] = m[3] - o[3];\n\n return result;\n }\n\n public subtract(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.subtractToRef(other, new FlowGraphMatrix2D());\n }\n\n public transpose(): FlowGraphMatrix2D {\n const m = this._m;\n return new FlowGraphMatrix2D([m[0], m[2], m[1], m[3]]);\n }\n\n public determinant(): number {\n const m = this._m;\n return m[0] * m[3] - m[1] * m[2];\n }\n\n public inverse(): FlowGraphMatrix2D {\n const det = this.determinant();\n if (det === 0) {\n throw new Error(\"Matrix is not invertible\");\n }\n const m = this._m;\n const invDet = 1 / det;\n return new FlowGraphMatrix2D([m[3] * invDet, -m[1] * invDet, -m[2] * invDet, m[0] * invDet]);\n }\n\n public equals(other: IFlowGraphMatrix<Vector2>, epsilon: number = 0): boolean {\n const m = this._m;\n const o = other.m;\n if (epsilon === 0) {\n return m[0] === o[0] && m[1] === o[1] && m[2] === o[2] && m[3] === o[3];\n }\n return Math.abs(m[0] - o[0]) < epsilon && Math.abs(m[1] - o[1]) < epsilon && Math.abs(m[2] - o[2]) < epsilon && Math.abs(m[3] - o[3]) < epsilon;\n }\n\n public getClassName(): string {\n return \"FlowGraphMatrix2D\";\n }\n\n public toString(): string {\n return `FlowGraphMatrix2D(${this._m.join(\", \")})`;\n }\n}\n\n/**\n * A 3x3 matrix.\n */\nexport class FlowGraphMatrix3D implements IFlowGraphMatrix<Vector3> {\n /**\n * @internal\n */\n public _m: number[];\n\n constructor(array: number[] = [1, 0, 0, 0, 1, 0, 0, 0, 1]) {\n this._m = array;\n }\n\n public get m(): number[] {\n return this._m;\n }\n\n public transformVector(v: Vector3): Vector3 {\n return this.transformVectorToRef(v, new Vector3());\n }\n\n public transformVectorToRef(v: Vector3, result: Vector3): Vector3 {\n const m = this._m;\n result.x = v.x * m[0] + v.y * m[1] + v.z * m[2];\n result.y = v.x * m[3] + v.y * m[4] + v.z * m[5];\n result.z = v.x * m[6] + v.y * m[7] + v.z * m[8];\n return result;\n }\n\n public multiplyToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const otherMatrix = other._m;\n const thisMatrix = this._m;\n const r = result.m;\n\n r[0] = otherMatrix[0] * thisMatrix[0] + otherMatrix[1] * thisMatrix[3] + otherMatrix[2] * thisMatrix[6];\n r[1] = otherMatrix[0] * thisMatrix[1] + otherMatrix[1] * thisMatrix[4] + otherMatrix[2] * thisMatrix[7];\n r[2] = otherMatrix[0] * thisMatrix[2] + otherMatrix[1] * thisMatrix[5] + otherMatrix[2] * thisMatrix[8];\n\n r[3] = otherMatrix[3] * thisMatrix[0] + otherMatrix[4] * thisMatrix[3] + otherMatrix[5] * thisMatrix[6];\n r[4] = otherMatrix[3] * thisMatrix[1] + otherMatrix[4] * thisMatrix[4] + otherMatrix[5] * thisMatrix[7];\n r[5] = otherMatrix[3] * thisMatrix[2] + otherMatrix[4] * thisMatrix[5] + otherMatrix[5] * thisMatrix[8];\n\n r[6] = otherMatrix[6] * thisMatrix[0] + otherMatrix[7] * thisMatrix[3] + otherMatrix[8] * thisMatrix[6];\n r[7] = otherMatrix[6] * thisMatrix[1] + otherMatrix[7] * thisMatrix[4] + otherMatrix[8] * thisMatrix[7];\n r[8] = otherMatrix[6] * thisMatrix[2] + otherMatrix[7] * thisMatrix[5] + otherMatrix[8] * thisMatrix[8];\n\n return result;\n }\n\n public multiply(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.multiplyToRef(other, new FlowGraphMatrix3D());\n }\n\n public divideToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] / o[0];\n r[1] = m[1] / o[1];\n r[2] = m[2] / o[2];\n r[3] = m[3] / o[3];\n r[4] = m[4] / o[4];\n r[5] = m[5] / o[5];\n r[6] = m[6] / o[6];\n r[7] = m[7] / o[7];\n r[8] = m[8] / o[8];\n\n return result;\n }\n\n public divide(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.divideToRef(other, new FlowGraphMatrix3D());\n }\n\n public addToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] + o[0];\n r[1] = m[1] + o[1];\n r[2] = m[2] + o[2];\n r[3] = m[3] + o[3];\n r[4] = m[4] + o[4];\n r[5] = m[5] + o[5];\n r[6] = m[6] + o[6];\n r[7] = m[7] + o[7];\n r[8] = m[8] + o[8];\n\n return result;\n }\n\n public add(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.addToRef(other, new FlowGraphMatrix3D());\n }\n\n public subtractToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] - o[0];\n r[1] = m[1] - o[1];\n r[2] = m[2] - o[2];\n r[3] = m[3] - o[3];\n r[4] = m[4] - o[4];\n r[5] = m[5] - o[5];\n r[6] = m[6] - o[6];\n r[7] = m[7] - o[7];\n r[8] = m[8] - o[8];\n\n return result;\n }\n\n public subtract(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.subtractToRef(other, new FlowGraphMatrix3D());\n }\n\n public toArray(emptyArray: number[] = []): number[] {\n for (let i = 0; i < 9; i++) {\n emptyArray[i] = this._m[i];\n }\n return emptyArray;\n }\n\n public asArray(): number[] {\n return this.toArray();\n }\n\n public fromArray(array: number[]): FlowGraphMatrix3D {\n for (let i = 0; i < 9; i++) {\n this._m[i] = array[i];\n }\n return this;\n }\n\n public transpose(): FlowGraphMatrix3D {\n const m = this._m;\n return new FlowGraphMatrix3D([m[0], m[3], m[6], m[1], m[4], m[7], m[2], m[5], m[8]]);\n }\n\n public determinant(): number {\n const m = this._m;\n return m[0] * (m[4] * m[8] - m[5] * m[7]) - m[1] * (m[3] * m[8] - m[5] * m[6]) + m[2] * (m[3] * m[7] - m[4] * m[6]);\n }\n\n public inverse(): FlowGraphMatrix3D {\n const det = this.determinant();\n if (det === 0) {\n throw new Error(\"Matrix is not invertible\");\n }\n const m = this._m;\n const invDet = 1 / det;\n return new FlowGraphMatrix3D([\n (m[4] * m[8] - m[5] * m[7]) * invDet,\n (m[2] * m[7] - m[1] * m[8]) * invDet,\n (m[1] * m[5] - m[2] * m[4]) * invDet,\n (m[5] * m[6] - m[3] * m[8]) * invDet,\n (m[0] * m[8] - m[2] * m[6]) * invDet,\n (m[2] * m[3] - m[0] * m[5]) * invDet,\n (m[3] * m[7] - m[4] * m[6]) * invDet,\n (m[1] * m[6] - m[0] * m[7]) * invDet,\n (m[0] * m[4] - m[1] * m[3]) * invDet,\n ]);\n }\n\n public equals(other: IFlowGraphMatrix<Vector3>, epsilon: number = 0): boolean {\n const m = this._m;\n const o = other.m;\n // performance shortcut\n if (epsilon === 0) {\n return m[0] === o[0] && m[1] === o[1] && m[2] === o[2] && m[3] === o[3] && m[4] === o[4] && m[5] === o[5] && m[6] === o[6] && m[7] === o[7] && m[8] === o[8];\n }\n return (\n Math.abs(m[0] - o[0]) < epsilon &&\n Math.abs(m[1] - o[1]) < epsilon &&\n Math.abs(m[2] - o[2]) < epsilon &&\n Math.abs(m[3] - o[3]) < epsilon &&\n Math.abs(m[4] - o[4]) < epsilon &&\n Math.abs(m[5] - o[5]) < epsilon &&\n Math.abs(m[6] - o[6]) < epsilon &&\n Math.abs(m[7] - o[7]) < epsilon &&\n Math.abs(m[8] - o[8]) < epsilon\n );\n }\n\n public getClassName(): string {\n return \"FlowGraphMatrix3D\";\n }\n\n public toString(): string {\n return `FlowGraphMatrix3D(${this._m.join(\", \")})`;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"flowGraphMatrix.js","sourceRoot":"","sources":["../../../../../dev/core/src/FlowGraph/CustomTypes/flowGraphMatrix.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector3, Vector2 } from \"core/Maths/math.vector.pure\";\n\n/**\n * Interface representing a generic flow graph matrix.\n *\n * BREAKING (since the KHR_interactivity work): {@link FlowGraphMatrix2D} and {@link FlowGraphMatrix3D}\n * now store their elements in column-major order, matching core {@link Matrix} and the\n * glTF/KHR_interactivity convention. Previous releases stored them row-major. This changes the result\n * of building a matrix from a flat array (`fromArray`/`set`), of `transformVector`/`transformVectorToRef`,\n * and of `multiply`/`multiplyToRef` (which now computes `this * other` rather than `other * this`).\n * There is no compile error — graphs that relied on the old ordering or operand order get silently\n * different numbers, so any code constructing these from raw arrays should be re-checked.\n */\nexport interface IFlowGraphMatrix<VectorType> {\n /**\n * The matrix elements stored in column-major order.\n */\n m: number[];\n\n /**\n * Transforms a vector using this matrix.\n *\n * @param v - The vector to transform.\n * @returns The transformed vector.\n */\n transformVector(v: VectorType): VectorType;\n\n /**\n * Transforms a vector using this matrix and stores the result in a reference vector.\n *\n * @param v - The vector to transform.\n * @param result - The vector to store the result.\n * @returns The transformed vector.\n */\n transformVectorToRef(v: VectorType, result: VectorType): VectorType;\n\n /**\n * Returns the matrix elements as an array.\n *\n * @returns The matrix elements as an array.\n */\n asArray(): number[];\n\n /**\n * Copies the matrix elements to an array.\n *\n * @param emptyArray - The array to copy the elements to.\n * @returns The array with the matrix elements.\n */\n toArray(emptyArray: number[]): number[];\n\n /**\n * Sets the matrix elements from an array.\n *\n * @param array - The array containing the matrix elements.\n * @returns The updated matrix.\n */\n fromArray(array: number[]): IFlowGraphMatrix<VectorType>;\n\n /**\n * Multiplies this matrix with another matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to multiply with.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n multiplyToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Multiplies this matrix with another matrix.\n * To staz conform with the Matrix class, this does B * A\n *\n * @param other - The matrix to multiply with.\n * @returns The result matrix.\n */\n multiply(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Divides this matrix by another matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to divide by.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n divideToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Divides this matrix by another matrix.\n *\n * @param other - The matrix to divide by.\n * @returns The result matrix.\n */\n divide(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Adds another matrix to this matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to add.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n addToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Adds another matrix to this matrix.\n *\n * @param other - The matrix to add.\n * @returns The result matrix.\n */\n add(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Subtracts another matrix from this matrix and stores the result in a reference matrix.\n *\n * @param other - The matrix to subtract.\n * @param result - The matrix to store the result.\n * @returns The result matrix.\n */\n subtractToRef(other: IFlowGraphMatrix<VectorType>, result: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Subtracts another matrix from this matrix.\n *\n * @param other - The matrix to subtract.\n * @returns The result matrix.\n */\n subtract(other: IFlowGraphMatrix<VectorType>): IFlowGraphMatrix<VectorType>;\n\n /**\n * Transposes this matrix.\n *\n * @returns The transposed matrix.\n */\n transpose(): IFlowGraphMatrix<VectorType>;\n\n /**\n * Computes the determinant of this matrix.\n *\n * @returns The determinant of the matrix.\n */\n determinant(): number;\n\n /**\n * Computes the inverse of this matrix.\n *\n * @returns The inverse of the matrix.\n * @throws Error if the matrix is not invertible.\n */\n inverse(): IFlowGraphMatrix<VectorType>;\n\n /**\n * Gets the class name of this matrix.\n *\n * @returns The class name.\n */\n getClassName(): string;\n\n /**\n * Checks if this matrix is equal to another matrix within an optional epsilon.\n *\n * @param other - The matrix to compare with.\n * @param epsilon - The optional epsilon for comparison.\n * @returns True if the matrices are equal, false otherwise.\n */\n equals(other: IFlowGraphMatrix<VectorType>, epsilon?: number): boolean;\n}\n\n// Note - the matrix classes are basically column-major, and work similarly to Babylon.js' Matrix class.\n\n/**\n * A 2x2 matrix, stored in column-major order.\n *\n * BREAKING: this class was row-major in earlier releases — see {@link IFlowGraphMatrix} for the full\n * behaviour change (flat-array construction, transform, and multiply operand order).\n */\nexport class FlowGraphMatrix2D implements IFlowGraphMatrix<Vector2> {\n /**\n * @internal\n */\n public _m: number[];\n\n constructor(m: number[] = [1, 0, 0, 1]) {\n this._m = m;\n }\n\n public get m(): number[] {\n return this._m;\n }\n\n public transformVector(v: Vector2): Vector2 {\n return this.transformVectorToRef(v, new Vector2());\n }\n\n public transformVectorToRef(v: Vector2, result: Vector2): Vector2 {\n result.x = v.x * this._m[0] + v.y * this._m[2];\n result.y = v.x * this._m[1] + v.y * this._m[3];\n return result;\n }\n\n public asArray(): number[] {\n return this.toArray();\n }\n\n public toArray(emptyArray: number[] = []): number[] {\n for (let i = 0; i < 4; i++) {\n emptyArray[i] = this._m[i];\n }\n return emptyArray;\n }\n\n public fromArray(array: number[]): FlowGraphMatrix2D {\n for (let i = 0; i < 4; i++) {\n this._m[i] = array[i];\n }\n return this;\n }\n\n public multiplyToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const otherMatrix = other._m;\n const thisMatrix = this._m;\n const r = result._m;\n // this * other, column-major (matches core Matrix and the glTF/KHR_interactivity convention)\n r[0] = thisMatrix[0] * otherMatrix[0] + thisMatrix[1] * otherMatrix[2];\n r[1] = thisMatrix[0] * otherMatrix[1] + thisMatrix[1] * otherMatrix[3];\n r[2] = thisMatrix[2] * otherMatrix[0] + thisMatrix[3] * otherMatrix[2];\n r[3] = thisMatrix[2] * otherMatrix[1] + thisMatrix[3] * otherMatrix[3];\n\n return result;\n }\n\n public multiply(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.multiplyToRef(other, new FlowGraphMatrix2D());\n }\n\n public divideToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other._m;\n const r = result._m;\n\n r[0] = m[0] / o[0];\n r[1] = m[1] / o[1];\n r[2] = m[2] / o[2];\n r[3] = m[3] / o[3];\n\n return result;\n }\n\n public divide(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.divideToRef(other, new FlowGraphMatrix2D());\n }\n\n public addToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] + o[0];\n r[1] = m[1] + o[1];\n r[2] = m[2] + o[2];\n r[3] = m[3] + o[3];\n\n return result;\n }\n\n public add(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.addToRef(other, new FlowGraphMatrix2D());\n }\n\n public subtractToRef(other: FlowGraphMatrix2D, result: FlowGraphMatrix2D): FlowGraphMatrix2D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] - o[0];\n r[1] = m[1] - o[1];\n r[2] = m[2] - o[2];\n r[3] = m[3] - o[3];\n\n return result;\n }\n\n public subtract(other: FlowGraphMatrix2D): FlowGraphMatrix2D {\n return this.subtractToRef(other, new FlowGraphMatrix2D());\n }\n\n public transpose(): FlowGraphMatrix2D {\n const m = this._m;\n return new FlowGraphMatrix2D([m[0], m[2], m[1], m[3]]);\n }\n\n public determinant(): number {\n const m = this._m;\n return m[0] * m[3] - m[1] * m[2];\n }\n\n public inverse(): FlowGraphMatrix2D {\n const det = this.determinant();\n if (det === 0) {\n throw new Error(\"Matrix is not invertible\");\n }\n const m = this._m;\n const invDet = 1 / det;\n return new FlowGraphMatrix2D([m[3] * invDet, -m[1] * invDet, -m[2] * invDet, m[0] * invDet]);\n }\n\n public equals(other: IFlowGraphMatrix<Vector2>, epsilon: number = 0): boolean {\n const m = this._m;\n const o = other.m;\n if (epsilon === 0) {\n return m[0] === o[0] && m[1] === o[1] && m[2] === o[2] && m[3] === o[3];\n }\n return Math.abs(m[0] - o[0]) < epsilon && Math.abs(m[1] - o[1]) < epsilon && Math.abs(m[2] - o[2]) < epsilon && Math.abs(m[3] - o[3]) < epsilon;\n }\n\n public getClassName(): string {\n return \"FlowGraphMatrix2D\";\n }\n\n public toString(): string {\n return `FlowGraphMatrix2D(${this._m.join(\", \")})`;\n }\n}\n\n/**\n * A 3x3 matrix, stored in column-major order.\n *\n * BREAKING: this class was row-major in earlier releases — see {@link IFlowGraphMatrix} for the full\n * behaviour change (flat-array construction, transform, and multiply operand order).\n */\nexport class FlowGraphMatrix3D implements IFlowGraphMatrix<Vector3> {\n /**\n * @internal\n */\n public _m: number[];\n\n constructor(array: number[] = [1, 0, 0, 0, 1, 0, 0, 0, 1]) {\n this._m = array;\n }\n\n public get m(): number[] {\n return this._m;\n }\n\n public transformVector(v: Vector3): Vector3 {\n return this.transformVectorToRef(v, new Vector3());\n }\n\n public transformVectorToRef(v: Vector3, result: Vector3): Vector3 {\n const m = this._m;\n result.x = v.x * m[0] + v.y * m[3] + v.z * m[6];\n result.y = v.x * m[1] + v.y * m[4] + v.z * m[7];\n result.z = v.x * m[2] + v.y * m[5] + v.z * m[8];\n return result;\n }\n\n public multiplyToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const otherMatrix = other._m;\n const thisMatrix = this._m;\n const r = result.m;\n\n r[0] = thisMatrix[0] * otherMatrix[0] + thisMatrix[1] * otherMatrix[3] + thisMatrix[2] * otherMatrix[6];\n r[1] = thisMatrix[0] * otherMatrix[1] + thisMatrix[1] * otherMatrix[4] + thisMatrix[2] * otherMatrix[7];\n r[2] = thisMatrix[0] * otherMatrix[2] + thisMatrix[1] * otherMatrix[5] + thisMatrix[2] * otherMatrix[8];\n\n r[3] = thisMatrix[3] * otherMatrix[0] + thisMatrix[4] * otherMatrix[3] + thisMatrix[5] * otherMatrix[6];\n r[4] = thisMatrix[3] * otherMatrix[1] + thisMatrix[4] * otherMatrix[4] + thisMatrix[5] * otherMatrix[7];\n r[5] = thisMatrix[3] * otherMatrix[2] + thisMatrix[4] * otherMatrix[5] + thisMatrix[5] * otherMatrix[8];\n\n r[6] = thisMatrix[6] * otherMatrix[0] + thisMatrix[7] * otherMatrix[3] + thisMatrix[8] * otherMatrix[6];\n r[7] = thisMatrix[6] * otherMatrix[1] + thisMatrix[7] * otherMatrix[4] + thisMatrix[8] * otherMatrix[7];\n r[8] = thisMatrix[6] * otherMatrix[2] + thisMatrix[7] * otherMatrix[5] + thisMatrix[8] * otherMatrix[8];\n\n return result;\n }\n\n public multiply(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.multiplyToRef(other, new FlowGraphMatrix3D());\n }\n\n public divideToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] / o[0];\n r[1] = m[1] / o[1];\n r[2] = m[2] / o[2];\n r[3] = m[3] / o[3];\n r[4] = m[4] / o[4];\n r[5] = m[5] / o[5];\n r[6] = m[6] / o[6];\n r[7] = m[7] / o[7];\n r[8] = m[8] / o[8];\n\n return result;\n }\n\n public divide(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.divideToRef(other, new FlowGraphMatrix3D());\n }\n\n public addToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] + o[0];\n r[1] = m[1] + o[1];\n r[2] = m[2] + o[2];\n r[3] = m[3] + o[3];\n r[4] = m[4] + o[4];\n r[5] = m[5] + o[5];\n r[6] = m[6] + o[6];\n r[7] = m[7] + o[7];\n r[8] = m[8] + o[8];\n\n return result;\n }\n\n public add(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.addToRef(other, new FlowGraphMatrix3D());\n }\n\n public subtractToRef(other: FlowGraphMatrix3D, result: FlowGraphMatrix3D): FlowGraphMatrix3D {\n const m = this._m;\n const o = other.m;\n const r = result.m;\n\n r[0] = m[0] - o[0];\n r[1] = m[1] - o[1];\n r[2] = m[2] - o[2];\n r[3] = m[3] - o[3];\n r[4] = m[4] - o[4];\n r[5] = m[5] - o[5];\n r[6] = m[6] - o[6];\n r[7] = m[7] - o[7];\n r[8] = m[8] - o[8];\n\n return result;\n }\n\n public subtract(other: FlowGraphMatrix3D): FlowGraphMatrix3D {\n return this.subtractToRef(other, new FlowGraphMatrix3D());\n }\n\n public toArray(emptyArray: number[] = []): number[] {\n for (let i = 0; i < 9; i++) {\n emptyArray[i] = this._m[i];\n }\n return emptyArray;\n }\n\n public asArray(): number[] {\n return this.toArray();\n }\n\n public fromArray(array: number[]): FlowGraphMatrix3D {\n for (let i = 0; i < 9; i++) {\n this._m[i] = array[i];\n }\n return this;\n }\n\n public transpose(): FlowGraphMatrix3D {\n const m = this._m;\n return new FlowGraphMatrix3D([m[0], m[3], m[6], m[1], m[4], m[7], m[2], m[5], m[8]]);\n }\n\n public determinant(): number {\n const m = this._m;\n return m[0] * (m[4] * m[8] - m[5] * m[7]) - m[1] * (m[3] * m[8] - m[5] * m[6]) + m[2] * (m[3] * m[7] - m[4] * m[6]);\n }\n\n public inverse(): FlowGraphMatrix3D {\n const det = this.determinant();\n if (det === 0) {\n throw new Error(\"Matrix is not invertible\");\n }\n const m = this._m;\n const invDet = 1 / det;\n return new FlowGraphMatrix3D([\n (m[4] * m[8] - m[5] * m[7]) * invDet,\n (m[2] * m[7] - m[1] * m[8]) * invDet,\n (m[1] * m[5] - m[2] * m[4]) * invDet,\n (m[5] * m[6] - m[3] * m[8]) * invDet,\n (m[0] * m[8] - m[2] * m[6]) * invDet,\n (m[2] * m[3] - m[0] * m[5]) * invDet,\n (m[3] * m[7] - m[4] * m[6]) * invDet,\n (m[1] * m[6] - m[0] * m[7]) * invDet,\n (m[0] * m[4] - m[1] * m[3]) * invDet,\n ]);\n }\n\n public equals(other: IFlowGraphMatrix<Vector3>, epsilon: number = 0): boolean {\n const m = this._m;\n const o = other.m;\n // performance shortcut\n if (epsilon === 0) {\n return m[0] === o[0] && m[1] === o[1] && m[2] === o[2] && m[3] === o[3] && m[4] === o[4] && m[5] === o[5] && m[6] === o[6] && m[7] === o[7] && m[8] === o[8];\n }\n return (\n Math.abs(m[0] - o[0]) < epsilon &&\n Math.abs(m[1] - o[1]) < epsilon &&\n Math.abs(m[2] - o[2]) < epsilon &&\n Math.abs(m[3] - o[3]) < epsilon &&\n Math.abs(m[4] - o[4]) < epsilon &&\n Math.abs(m[5] - o[5]) < epsilon &&\n Math.abs(m[6] - o[6]) < epsilon &&\n Math.abs(m[7] - o[7]) < epsilon &&\n Math.abs(m[8] - o[8]) < epsilon\n );\n }\n\n public getClassName(): string {\n return \"FlowGraphMatrix3D\";\n }\n\n public toString(): string {\n return `FlowGraphMatrix3D(${this._m.join(\", \")})`;\n }\n}\n"]}
|
|
@@ -229,6 +229,29 @@ export declare class FlowGraphContext {
|
|
|
229
229
|
* @returns the scene
|
|
230
230
|
*/
|
|
231
231
|
getScene(): Scene;
|
|
232
|
+
/**
|
|
233
|
+
* Encodes an event source key as the opaque reference exposed by event blocks on their `event`
|
|
234
|
+
* output. Delegates to the {@link IFlowGraphHostResolver} configured on the coordinator, so the
|
|
235
|
+
* reference format is owned by the environment hosting the graph.
|
|
236
|
+
* @param key the event source key (e.g. `"sceneReady"`, `"sceneTick"`, or a custom event id)
|
|
237
|
+
* @returns the event reference
|
|
238
|
+
*/
|
|
239
|
+
getEventReference(key: string): string;
|
|
240
|
+
/**
|
|
241
|
+
* Decodes the array index denoted by a reference. Returns `undefined` when no host resolver is
|
|
242
|
+
* configured or the host does not recognise the value as an indexed reference.
|
|
243
|
+
* @param reference the reference to decode
|
|
244
|
+
* @returns the index the reference denotes, or `undefined` when it does not denote one
|
|
245
|
+
*/
|
|
246
|
+
decodeIndexReference(reference: string): number | undefined;
|
|
247
|
+
/**
|
|
248
|
+
* Maps a runtime object to the reference the host addresses it by. Returns `undefined` when no
|
|
249
|
+
* host resolver is configured or the host cannot address the object.
|
|
250
|
+
* @param object the runtime object to address
|
|
251
|
+
* @param hint optional disambiguation hint telling the host which kind of reference is wanted
|
|
252
|
+
* @returns the reference for the object, or `undefined` when it cannot be addressed
|
|
253
|
+
*/
|
|
254
|
+
getObjectReference(object: object, hint?: string): string | undefined;
|
|
232
255
|
private _getUniqueIdPrefixedName;
|
|
233
256
|
/**
|
|
234
257
|
* @internal
|
|
@@ -213,6 +213,35 @@ let FlowGraphContext = (() => {
|
|
|
213
213
|
getScene() {
|
|
214
214
|
return this._configuration.scene;
|
|
215
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Encodes an event source key as the opaque reference exposed by event blocks on their `event`
|
|
218
|
+
* output. Delegates to the {@link IFlowGraphHostResolver} configured on the coordinator, so the
|
|
219
|
+
* reference format is owned by the environment hosting the graph.
|
|
220
|
+
* @param key the event source key (e.g. `"sceneReady"`, `"sceneTick"`, or a custom event id)
|
|
221
|
+
* @returns the event reference
|
|
222
|
+
*/
|
|
223
|
+
getEventReference(key) {
|
|
224
|
+
return this._configuration.coordinator._getEventReference(key);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Decodes the array index denoted by a reference. Returns `undefined` when no host resolver is
|
|
228
|
+
* configured or the host does not recognise the value as an indexed reference.
|
|
229
|
+
* @param reference the reference to decode
|
|
230
|
+
* @returns the index the reference denotes, or `undefined` when it does not denote one
|
|
231
|
+
*/
|
|
232
|
+
decodeIndexReference(reference) {
|
|
233
|
+
return this._configuration.coordinator.config.hostResolver?.decodeIndexReference?.(reference);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Maps a runtime object to the reference the host addresses it by. Returns `undefined` when no
|
|
237
|
+
* host resolver is configured or the host cannot address the object.
|
|
238
|
+
* @param object the runtime object to address
|
|
239
|
+
* @param hint optional disambiguation hint telling the host which kind of reference is wanted
|
|
240
|
+
* @returns the reference for the object, or `undefined` when it cannot be addressed
|
|
241
|
+
*/
|
|
242
|
+
getObjectReference(object, hint) {
|
|
243
|
+
return this._configuration.coordinator.config.hostResolver?.getObjectReference?.(object, hint);
|
|
244
|
+
}
|
|
216
245
|
_getUniqueIdPrefixedName(obj, name) {
|
|
217
246
|
return `${obj.uniqueId}_${name}`;
|
|
218
247
|
}
|