@onerjs/core 8.54.4 → 8.54.5

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.
Files changed (177) hide show
  1. package/Engines/WebGPU/Extensions/engine.cubeTexture.pure.js +1 -1
  2. package/Engines/WebGPU/Extensions/engine.cubeTexture.pure.js.map +1 -1
  3. package/Engines/WebGPU/Extensions/engine.rawTexture.pure.js +2 -2
  4. package/Engines/WebGPU/Extensions/engine.rawTexture.pure.js.map +1 -1
  5. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -0
  6. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +18 -4
  7. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  8. package/Engines/WebGPU/webgpuCacheTextureView.d.ts +13 -0
  9. package/Engines/WebGPU/webgpuCacheTextureView.js +32 -0
  10. package/Engines/WebGPU/webgpuCacheTextureView.js.map +1 -0
  11. package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +10 -0
  12. package/Engines/WebGPU/webgpuRenderTargetWrapper.js +10 -0
  13. package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -1
  14. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.pure.js +57 -4
  15. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.pure.js.map +1 -1
  16. package/Engines/WebGPU/webgpuTextureManager.d.ts +1 -1
  17. package/Engines/WebGPU/webgpuTextureManager.js +4 -2
  18. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  19. package/Engines/abstractEngine.pure.js +2 -2
  20. package/Engines/abstractEngine.pure.js.map +1 -1
  21. package/Engines/thinNativeEngine.pure.d.ts +5 -0
  22. package/Engines/thinNativeEngine.pure.js +29 -6
  23. package/Engines/thinNativeEngine.pure.js.map +1 -1
  24. package/Engines/webgpuEngine.pure.d.ts +1 -0
  25. package/Engines/webgpuEngine.pure.js +21 -8
  26. package/Engines/webgpuEngine.pure.js.map +1 -1
  27. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.d.ts +95 -1
  28. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js +169 -4
  29. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.pure.js.map +1 -1
  30. package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.pure.d.ts +21 -6
  31. package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.pure.js +28 -26
  32. package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.pure.js.map +1 -1
  33. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.pure.d.ts +30 -2
  34. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.pure.js +111 -29
  35. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.pure.js.map +1 -1
  36. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.pure.d.ts +56 -2
  37. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.pure.js +99 -14
  38. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.pure.js.map +1 -1
  39. package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js +10 -2
  40. package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.pure.js.map +1 -1
  41. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js +21 -1
  42. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.pure.js.map +1 -1
  43. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +18 -0
  44. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +29 -2
  45. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
  46. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.d.ts +15 -0
  47. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js +44 -7
  48. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.pure.js.map +1 -1
  49. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.d.ts +9 -0
  50. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js +9 -1
  51. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.pure.js.map +1 -1
  52. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.d.ts +7 -0
  53. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js +8 -1
  54. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.pure.js.map +1 -1
  55. package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.d.ts +5 -0
  56. package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.js +8 -0
  57. package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.js.map +1 -0
  58. package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.pure.d.ts +37 -0
  59. package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.pure.js +44 -0
  60. package/FlowGraph/Blocks/Event/flowGraphStopEventPropagationBlock.pure.js.map +1 -0
  61. package/FlowGraph/Blocks/Event/index.d.ts +1 -0
  62. package/FlowGraph/Blocks/Event/index.js +1 -0
  63. package/FlowGraph/Blocks/Event/index.js.map +1 -1
  64. package/FlowGraph/Blocks/Event/pure.d.ts +1 -0
  65. package/FlowGraph/Blocks/Event/pure.js +1 -0
  66. package/FlowGraph/Blocks/Event/pure.js.map +1 -1
  67. package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.pure.d.ts +4 -1
  68. package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.pure.js +67 -2
  69. package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.pure.js.map +1 -1
  70. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.d.ts +13 -0
  71. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js +102 -7
  72. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.pure.js.map +1 -1
  73. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js +5 -1
  74. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.pure.js.map +1 -1
  75. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js +5 -1
  76. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js.map +1 -1
  77. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.d.ts +11 -2
  78. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js +21 -3
  79. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.pure.js.map +1 -1
  80. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.pure.js +25 -4
  81. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.pure.js.map +1 -1
  82. package/FlowGraph/Blocks/flowGraphBlockFactory.js +18 -0
  83. package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -1
  84. package/FlowGraph/Blocks/flowGraphBlockNames.d.ts +9 -0
  85. package/FlowGraph/Blocks/flowGraphBlockNames.js +9 -0
  86. package/FlowGraph/Blocks/flowGraphBlockNames.js.map +1 -1
  87. package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +17 -3
  88. package/FlowGraph/CustomTypes/flowGraphMatrix.js +27 -21
  89. package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
  90. package/FlowGraph/flowGraphContext.d.ts +23 -0
  91. package/FlowGraph/flowGraphContext.js +29 -0
  92. package/FlowGraph/flowGraphContext.js.map +1 -1
  93. package/FlowGraph/flowGraphCoordinator.d.ts +58 -1
  94. package/FlowGraph/flowGraphCoordinator.js +72 -0
  95. package/FlowGraph/flowGraphCoordinator.js.map +1 -1
  96. package/FlowGraph/flowGraphDelayRegistry.d.ts +31 -0
  97. package/FlowGraph/flowGraphDelayRegistry.js +50 -0
  98. package/FlowGraph/flowGraphDelayRegistry.js.map +1 -0
  99. package/FlowGraph/flowGraphHostResolver.d.ts +69 -0
  100. package/FlowGraph/flowGraphHostResolver.js +25 -0
  101. package/FlowGraph/flowGraphHostResolver.js.map +1 -0
  102. package/FlowGraph/flowGraphMath.d.ts +48 -1
  103. package/FlowGraph/flowGraphMath.js +169 -4
  104. package/FlowGraph/flowGraphMath.js.map +1 -1
  105. package/FlowGraph/flowGraphPathConverterComponent.d.ts +14 -3
  106. package/FlowGraph/flowGraphPathConverterComponent.js +110 -18
  107. package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
  108. package/FlowGraph/flowGraphSignalConnection.pure.js +7 -1
  109. package/FlowGraph/flowGraphSignalConnection.pure.js.map +1 -1
  110. package/FlowGraph/index.d.ts +2 -0
  111. package/FlowGraph/index.js +2 -0
  112. package/FlowGraph/index.js.map +1 -1
  113. package/FlowGraph/pure.d.ts +2 -0
  114. package/FlowGraph/pure.js +2 -0
  115. package/FlowGraph/pure.js.map +1 -1
  116. package/Maths/math.vector.pure.d.ts +10 -0
  117. package/Maths/math.vector.pure.js +13 -0
  118. package/Maths/math.vector.pure.js.map +1 -1
  119. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.d.ts +216 -1
  120. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +714 -67
  121. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  122. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +81 -4
  123. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +466 -52
  124. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  125. package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.pure.d.ts +19 -0
  126. package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.pure.js +24 -0
  127. package/Meshes/GaussianSplatting/gaussianSplattingPartProxyMesh.pure.js.map +1 -1
  128. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +31 -6
  129. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -1
  130. package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +5 -1
  131. package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js.map +1 -1
  132. package/Misc/greasedLineTools.js +1 -1
  133. package/Misc/greasedLineTools.js.map +1 -1
  134. package/Misc/tools.pure.js +14 -2
  135. package/Misc/tools.pure.js.map +1 -1
  136. package/Particles/gpuParticleSystem.pure.d.ts +66 -1
  137. package/Particles/gpuParticleSystem.pure.js +189 -49
  138. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  139. package/Physics/v2/characterController.js +69 -17
  140. package/Physics/v2/characterController.js.map +1 -1
  141. package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +3 -9
  142. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +4 -11
  143. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -1
  144. package/XR/features/WebXRAbstractFeature.d.ts +9 -0
  145. package/XR/features/WebXRAbstractFeature.js +16 -0
  146. package/XR/features/WebXRAbstractFeature.js.map +1 -1
  147. package/XR/features/WebXRDepthSensing.pure.d.ts +7 -0
  148. package/XR/features/WebXRDepthSensing.pure.js +350 -39
  149. package/XR/features/WebXRDepthSensing.pure.js.map +1 -1
  150. package/XR/features/WebXRImageTracking.pure.js.map +1 -1
  151. package/XR/features/WebXRLayers.pure.d.ts +6 -5
  152. package/XR/features/WebXRLayers.pure.js +65 -8
  153. package/XR/features/WebXRLayers.pure.js.map +1 -1
  154. package/XR/features/WebXRRawCameraAccess.pure.js +9 -2
  155. package/XR/features/WebXRRawCameraAccess.pure.js.map +1 -1
  156. package/XR/features/WebXRSpaceWarp.pure.d.ts +0 -1
  157. package/XR/features/WebXRSpaceWarp.pure.js +13 -4
  158. package/XR/features/WebXRSpaceWarp.pure.js.map +1 -1
  159. package/XR/features/WebXRWalkingLocomotion.pure.js.map +1 -1
  160. package/XR/webXRCamera.js +27 -0
  161. package/XR/webXRCamera.js.map +1 -1
  162. package/XR/webXRFeatureWarningRegistry.d.ts +14 -0
  163. package/XR/webXRFeatureWarningRegistry.js +19 -0
  164. package/XR/webXRFeatureWarningRegistry.js.map +1 -0
  165. package/XR/webXRFeaturesManager.d.ts +5 -0
  166. package/XR/webXRFeaturesManager.js +23 -4
  167. package/XR/webXRFeaturesManager.js.map +1 -1
  168. package/XR/webXRGraphicsBinding.d.ts +17 -10
  169. package/XR/webXRGraphicsBinding.js +8 -5
  170. package/XR/webXRGraphicsBinding.js.map +1 -1
  171. package/XR/webXRSessionManager.d.ts +3 -5
  172. package/XR/webXRSessionManager.js +1 -3
  173. package/XR/webXRSessionManager.js.map +1 -1
  174. package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +21 -5
  175. package/XR/webXRWebGPURenderTargetTextureProvider.js +38 -10
  176. package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -1
  177. 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 a row-major order.
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[1];
18
- result.y = v.x * this._m[2] + v.y * this._m[3];
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
- // other * this
41
- r[0] = otherMatrix[0] * thisMatrix[0] + otherMatrix[1] * thisMatrix[2];
42
- r[1] = otherMatrix[0] * thisMatrix[1] + otherMatrix[1] * thisMatrix[3];
43
- r[2] = otherMatrix[2] * thisMatrix[0] + otherMatrix[3] * thisMatrix[2];
44
- r[3] = otherMatrix[2] * thisMatrix[1] + otherMatrix[3] * thisMatrix[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[1] + v.z * m[2];
137
- result.y = v.x * m[3] + v.y * m[4] + v.z * m[5];
138
- result.z = v.x * m[6] + v.y * m[7] + v.z * m[8];
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] = otherMatrix[0] * thisMatrix[0] + otherMatrix[1] * thisMatrix[3] + otherMatrix[2] * thisMatrix[6];
146
- r[1] = otherMatrix[0] * thisMatrix[1] + otherMatrix[1] * thisMatrix[4] + otherMatrix[2] * thisMatrix[7];
147
- r[2] = otherMatrix[0] * thisMatrix[2] + otherMatrix[1] * thisMatrix[5] + otherMatrix[2] * thisMatrix[8];
148
- r[3] = otherMatrix[3] * thisMatrix[0] + otherMatrix[4] * thisMatrix[3] + otherMatrix[5] * thisMatrix[6];
149
- r[4] = otherMatrix[3] * thisMatrix[1] + otherMatrix[4] * thisMatrix[4] + otherMatrix[5] * thisMatrix[7];
150
- r[5] = otherMatrix[3] * thisMatrix[2] + otherMatrix[4] * thisMatrix[5] + otherMatrix[5] * thisMatrix[8];
151
- r[6] = otherMatrix[6] * thisMatrix[0] + otherMatrix[7] * thisMatrix[3] + otherMatrix[8] * thisMatrix[6];
152
- r[7] = otherMatrix[6] * thisMatrix[1] + otherMatrix[7] * thisMatrix[4] + otherMatrix[8] * thisMatrix[7];
153
- r[8] = otherMatrix[6] * thisMatrix[2] + otherMatrix[7] * thisMatrix[5] + otherMatrix[8] * thisMatrix[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
  }