@babylonjs/core 7.51.1 → 7.51.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/Animations/animation.js +2 -1
  2. package/Animations/animation.js.map +1 -1
  3. package/Buffers/bufferUtils.d.ts +7 -5
  4. package/Buffers/bufferUtils.js +13 -9
  5. package/Buffers/bufferUtils.js.map +1 -1
  6. package/Engines/abstractEngine.js +2 -2
  7. package/Engines/abstractEngine.js.map +1 -1
  8. package/Engines/constants.d.ts +32 -0
  9. package/Engines/constants.js +33 -0
  10. package/Engines/constants.js.map +1 -1
  11. package/Engines/webgpuEngine.js +6 -3
  12. package/Engines/webgpuEngine.js.map +1 -1
  13. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.d.ts +148 -465
  14. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js +394 -691
  15. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js.map +1 -1
  16. package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.d.ts +142 -0
  17. package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.js +342 -0
  18. package/FlowGraph/Blocks/Data/Math/flowGraphMathCombineExtractBlocks.js.map +1 -0
  19. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.d.ts +107 -0
  20. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.js +130 -0
  21. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixMathBlocks.js.map +1 -0
  22. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.d.ts +77 -0
  23. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js +139 -0
  24. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js.map +1 -0
  25. package/FlowGraph/Blocks/Data/Math/index.d.ts +3 -0
  26. package/FlowGraph/Blocks/Data/Math/index.js +3 -0
  27. package/FlowGraph/Blocks/Data/Math/index.js.map +1 -1
  28. package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.d.ts +85 -0
  29. package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.js +133 -0
  30. package/FlowGraph/Blocks/Data/Transformers/flowGraphJsonPointerParserBlock.js.map +1 -0
  31. package/FlowGraph/Blocks/Data/Transformers/flowGraphTypeToTypeBlocks.d.ts +49 -0
  32. package/FlowGraph/Blocks/Data/Transformers/flowGraphTypeToTypeBlocks.js +71 -0
  33. package/FlowGraph/Blocks/Data/Transformers/flowGraphTypeToTypeBlocks.js.map +1 -0
  34. package/FlowGraph/Blocks/Data/Transformers/index.d.ts +2 -0
  35. package/FlowGraph/Blocks/Data/Transformers/index.js +3 -0
  36. package/FlowGraph/Blocks/Data/Transformers/index.js.map +1 -0
  37. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.d.ts +39 -0
  38. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.js +46 -0
  39. package/FlowGraph/Blocks/Data/Utils/flowGraphArrayIndexBlock.js.map +1 -0
  40. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.d.ts +35 -0
  41. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +34 -0
  42. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -0
  43. package/FlowGraph/Blocks/Data/Utils/flowGraphContextBlock.d.ts +20 -0
  44. package/FlowGraph/Blocks/Data/Utils/flowGraphContextBlock.js +25 -0
  45. package/FlowGraph/Blocks/Data/Utils/flowGraphContextBlock.js.map +1 -0
  46. package/FlowGraph/Blocks/Data/Utils/flowGraphFunctionReferenceBlock.d.ts +34 -0
  47. package/FlowGraph/Blocks/Data/Utils/flowGraphFunctionReferenceBlock.js +35 -0
  48. package/FlowGraph/Blocks/Data/Utils/flowGraphFunctionReferenceBlock.js.map +1 -0
  49. package/FlowGraph/Blocks/Data/Utils/flowGraphIndexOfBlock.d.ts +39 -0
  50. package/FlowGraph/Blocks/Data/Utils/flowGraphIndexOfBlock.js +42 -0
  51. package/FlowGraph/Blocks/Data/Utils/flowGraphIndexOfBlock.js.map +1 -0
  52. package/FlowGraph/Blocks/Data/Utils/index.d.ts +5 -0
  53. package/FlowGraph/Blocks/Data/Utils/index.js +6 -0
  54. package/FlowGraph/Blocks/Data/Utils/index.js.map +1 -0
  55. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.d.ts +0 -1
  56. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js +3 -2
  57. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js.map +1 -1
  58. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
  59. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +4 -4
  60. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
  61. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.d.ts +6 -3
  62. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js +12 -6
  63. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js.map +1 -1
  64. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.d.ts +0 -2
  65. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js +2 -3
  66. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js.map +1 -1
  67. package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.d.ts +5 -4
  68. package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js +5 -4
  69. package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js.map +1 -1
  70. package/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.d.ts +62 -0
  71. package/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.js +41 -0
  72. package/FlowGraph/Blocks/Data/flowGraphGetAssetBlock.js.map +1 -0
  73. package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.d.ts +38 -33
  74. package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js +42 -25
  75. package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js.map +1 -1
  76. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.d.ts +11 -16
  77. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js +9 -17
  78. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js.map +1 -1
  79. package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.d.ts +1 -1
  80. package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js +1 -1
  81. package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js.map +1 -1
  82. package/FlowGraph/Blocks/Data/{flowGraphCoordinateTransformBlock.d.ts → flowGraphTransformCoordinatesSystemBlock.d.ts} +1 -2
  83. package/FlowGraph/Blocks/Data/{flowGraphCoordinateTransformBlock.js → flowGraphTransformCoordinatesSystemBlock.js} +4 -5
  84. package/FlowGraph/Blocks/Data/flowGraphTransformCoordinatesSystemBlock.js.map +1 -0
  85. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.d.ts +1 -1
  86. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js +1 -1
  87. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js.map +1 -1
  88. package/FlowGraph/Blocks/Data/index.d.ts +7 -3
  89. package/FlowGraph/Blocks/Data/index.js +9 -4
  90. package/FlowGraph/Blocks/Data/index.js.map +1 -1
  91. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.d.ts +45 -24
  92. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js +45 -51
  93. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js.map +1 -1
  94. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.d.ts +61 -0
  95. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.js +39 -0
  96. package/FlowGraph/Blocks/Event/flowGraphPointerOutEventBlock.js.map +1 -0
  97. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.d.ts +61 -0
  98. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.js +40 -0
  99. package/FlowGraph/Blocks/Event/flowGraphPointerOverEventBlock.js.map +1 -0
  100. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.d.ts +12 -14
  101. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js +19 -26
  102. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js.map +1 -1
  103. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.d.ts +6 -12
  104. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js +13 -24
  105. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js.map +1 -1
  106. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.d.ts +31 -7
  107. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js +22 -20
  108. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js.map +1 -1
  109. package/FlowGraph/Blocks/{Execution → Event}/flowGraphSendCustomEventBlock.d.ts +12 -7
  110. package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.js +39 -0
  111. package/FlowGraph/Blocks/Event/flowGraphSendCustomEventBlock.js.map +1 -0
  112. package/FlowGraph/Blocks/Event/index.d.ts +3 -0
  113. package/FlowGraph/Blocks/Event/index.js +3 -0
  114. package/FlowGraph/Blocks/Event/index.js.map +1 -1
  115. package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.d.ts +44 -0
  116. package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.js +46 -0
  117. package/FlowGraph/Blocks/Execution/Animation/flowGraphBezierCurveEasingBlock.js.map +1 -0
  118. package/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.d.ts +60 -0
  119. package/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.js +93 -0
  120. package/FlowGraph/Blocks/Execution/Animation/flowGraphEasingBlock.js.map +1 -0
  121. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.d.ts +82 -0
  122. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.js +105 -0
  123. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.js.map +1 -0
  124. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.d.ts +2 -2
  125. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js +2 -2
  126. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js.map +1 -1
  127. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.d.ts +40 -42
  128. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +116 -50
  129. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
  130. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.d.ts +12 -4
  131. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js +86 -8
  132. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js.map +1 -1
  133. package/FlowGraph/Blocks/Execution/Animation/index.d.ts +3 -0
  134. package/FlowGraph/Blocks/Execution/Animation/index.js +3 -0
  135. package/FlowGraph/Blocks/Execution/Animation/index.js.map +1 -1
  136. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.d.ts +1 -2
  137. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js +3 -4
  138. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js.map +1 -1
  139. package/FlowGraph/Blocks/Execution/{Audio/flowGraphStopAudioBlock.d.ts → ControlFlow/flowGraphCancelDelayBlock.d.ts} +6 -8
  140. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js +31 -0
  141. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js.map +1 -0
  142. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.d.ts +2 -2
  143. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js +5 -5
  144. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js.map +1 -1
  145. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.d.ts +0 -1
  146. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js +2 -3
  147. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js.map +1 -1
  148. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.d.ts +5 -10
  149. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js +11 -15
  150. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js.map +1 -1
  151. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.d.ts +11 -3
  152. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js +5 -6
  153. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js.map +1 -1
  154. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.d.ts +27 -7
  155. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js +28 -30
  156. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js.map +1 -1
  157. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.d.ts +13 -16
  158. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js +50 -52
  159. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js.map +1 -1
  160. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.d.ts +8 -9
  161. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js +26 -13
  162. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js.map +1 -1
  163. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.d.ts +32 -0
  164. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js +84 -0
  165. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js.map +1 -0
  166. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.d.ts +20 -6
  167. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js +55 -16
  168. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js.map +1 -1
  169. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.d.ts +3 -4
  170. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js +36 -13
  171. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js.map +1 -1
  172. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.d.ts +13 -5
  173. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js +22 -17
  174. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js.map +1 -1
  175. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.d.ts +12 -16
  176. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js +21 -21
  177. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js.map +1 -1
  178. package/FlowGraph/Blocks/Execution/ControlFlow/index.d.ts +2 -1
  179. package/FlowGraph/Blocks/Execution/ControlFlow/index.js +2 -1
  180. package/FlowGraph/Blocks/Execution/ControlFlow/index.js.map +1 -1
  181. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.d.ts +4 -5
  182. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js +13 -8
  183. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js.map +1 -1
  184. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.d.ts +33 -36
  185. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js +42 -26
  186. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js.map +1 -1
  187. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.d.ts +10 -25
  188. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js +38 -24
  189. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js.map +1 -1
  190. package/FlowGraph/Blocks/Execution/index.d.ts +0 -3
  191. package/FlowGraph/Blocks/Execution/index.js +0 -3
  192. package/FlowGraph/Blocks/Execution/index.js.map +1 -1
  193. package/FlowGraph/Blocks/flowGraphBlockFactory.d.ts +16 -0
  194. package/FlowGraph/Blocks/flowGraphBlockFactory.js +292 -0
  195. package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -0
  196. package/FlowGraph/Blocks/flowGraphBlockNames.d.ts +145 -0
  197. package/FlowGraph/Blocks/flowGraphBlockNames.js +147 -0
  198. package/FlowGraph/Blocks/flowGraphBlockNames.js.map +1 -0
  199. package/FlowGraph/Blocks/index.d.ts +2 -0
  200. package/FlowGraph/Blocks/index.js +2 -0
  201. package/FlowGraph/Blocks/index.js.map +1 -1
  202. package/FlowGraph/{flowGraphInteger.d.ts → CustomTypes/flowGraphInteger.d.ts} +2 -3
  203. package/FlowGraph/{flowGraphInteger.js → CustomTypes/flowGraphInteger.js} +4 -5
  204. package/FlowGraph/CustomTypes/flowGraphInteger.js.map +1 -0
  205. package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +196 -0
  206. package/FlowGraph/CustomTypes/flowGraphMatrix.js +272 -0
  207. package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -0
  208. package/FlowGraph/CustomTypes/index.d.ts +2 -0
  209. package/FlowGraph/CustomTypes/index.js +3 -0
  210. package/FlowGraph/CustomTypes/index.js.map +1 -0
  211. package/FlowGraph/flowGraph.d.ts +29 -34
  212. package/FlowGraph/flowGraph.js +120 -104
  213. package/FlowGraph/flowGraph.js.map +1 -1
  214. package/FlowGraph/flowGraphAssetsContext.d.ts +29 -0
  215. package/FlowGraph/flowGraphAssetsContext.js +52 -0
  216. package/FlowGraph/flowGraphAssetsContext.js.map +1 -0
  217. package/FlowGraph/flowGraphAsyncExecutionBlock.d.ts +15 -8
  218. package/FlowGraph/flowGraphAsyncExecutionBlock.js +25 -5
  219. package/FlowGraph/flowGraphAsyncExecutionBlock.js.map +1 -1
  220. package/FlowGraph/flowGraphBlock.d.ts +22 -15
  221. package/FlowGraph/flowGraphBlock.js +31 -52
  222. package/FlowGraph/flowGraphBlock.js.map +1 -1
  223. package/FlowGraph/flowGraphConnection.d.ts +13 -12
  224. package/FlowGraph/flowGraphConnection.js +31 -16
  225. package/FlowGraph/flowGraphConnection.js.map +1 -1
  226. package/FlowGraph/flowGraphContext.d.ts +89 -13
  227. package/FlowGraph/flowGraphContext.js +210 -23
  228. package/FlowGraph/flowGraphContext.js.map +1 -1
  229. package/FlowGraph/flowGraphCoordinator.d.ts +4 -10
  230. package/FlowGraph/flowGraphCoordinator.js +4 -16
  231. package/FlowGraph/flowGraphCoordinator.js.map +1 -1
  232. package/FlowGraph/flowGraphDataConnection.d.ts +52 -14
  233. package/FlowGraph/flowGraphDataConnection.js +73 -26
  234. package/FlowGraph/flowGraphDataConnection.js.map +1 -1
  235. package/FlowGraph/flowGraphEventBlock.d.ts +17 -1
  236. package/FlowGraph/flowGraphEventBlock.js +13 -2
  237. package/FlowGraph/flowGraphEventBlock.js.map +1 -1
  238. package/FlowGraph/flowGraphEventType.d.ts +16 -0
  239. package/FlowGraph/flowGraphEventType.js +18 -0
  240. package/FlowGraph/flowGraphEventType.js.map +1 -0
  241. package/FlowGraph/flowGraphExecutionBlock.d.ts +11 -1
  242. package/FlowGraph/flowGraphExecutionBlock.js +21 -2
  243. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  244. package/FlowGraph/flowGraphExecutionBlockWithOutSignal.d.ts +2 -2
  245. package/FlowGraph/flowGraphExecutionBlockWithOutSignal.js +0 -1
  246. package/FlowGraph/flowGraphExecutionBlockWithOutSignal.js.map +1 -1
  247. package/FlowGraph/flowGraphLogger.d.ts +60 -0
  248. package/FlowGraph/flowGraphLogger.js +53 -0
  249. package/FlowGraph/flowGraphLogger.js.map +1 -0
  250. package/FlowGraph/flowGraphParser.d.ts +85 -0
  251. package/FlowGraph/flowGraphParser.js +271 -0
  252. package/FlowGraph/flowGraphParser.js.map +1 -0
  253. package/FlowGraph/flowGraphPathConverter.d.ts +1 -1
  254. package/FlowGraph/flowGraphPathConverter.js +3 -2
  255. package/FlowGraph/flowGraphPathConverter.js.map +1 -1
  256. package/FlowGraph/flowGraphPathConverterComponent.d.ts +8 -1
  257. package/FlowGraph/flowGraphPathConverterComponent.js +18 -2
  258. package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
  259. package/FlowGraph/flowGraphRichTypes.d.ts +51 -9
  260. package/FlowGraph/flowGraphRichTypes.js +160 -50
  261. package/FlowGraph/flowGraphRichTypes.js.map +1 -1
  262. package/FlowGraph/flowGraphSceneEventCoordinator.d.ts +45 -0
  263. package/FlowGraph/flowGraphSceneEventCoordinator.js +77 -0
  264. package/FlowGraph/flowGraphSceneEventCoordinator.js.map +1 -0
  265. package/FlowGraph/flowGraphSignalConnection.d.ts +8 -5
  266. package/FlowGraph/flowGraphSignalConnection.js +26 -9
  267. package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
  268. package/FlowGraph/index.d.ts +6 -1
  269. package/FlowGraph/index.js +7 -1
  270. package/FlowGraph/index.js.map +1 -1
  271. package/FlowGraph/serialization.d.ts +5 -2
  272. package/FlowGraph/serialization.js +94 -22
  273. package/FlowGraph/serialization.js.map +1 -1
  274. package/FlowGraph/typeDefinitions.d.ts +74 -12
  275. package/FlowGraph/typeDefinitions.js.map +1 -1
  276. package/FlowGraph/utils.d.ts +47 -0
  277. package/FlowGraph/utils.js +55 -0
  278. package/FlowGraph/utils.js.map +1 -1
  279. package/Maths/math.path.js +3 -0
  280. package/Maths/math.path.js.map +1 -1
  281. package/Meshes/geometry.d.ts +2 -1
  282. package/Meshes/geometry.js +8 -2
  283. package/Meshes/geometry.js.map +1 -1
  284. package/Meshes/mesh.d.ts +2 -1
  285. package/Meshes/mesh.js +3 -2
  286. package/Meshes/mesh.js.map +1 -1
  287. package/ObjectModel/objectModelInterfaces.d.ts +2 -2
  288. package/ObjectModel/objectModelInterfaces.js.map +1 -1
  289. package/package.json +1 -1
  290. package/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.d.ts +0 -24
  291. package/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.js +0 -39
  292. package/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.js.map +0 -1
  293. package/FlowGraph/Blocks/Data/Logic/index.d.ts +0 -1
  294. package/FlowGraph/Blocks/Data/Logic/index.js +0 -2
  295. package/FlowGraph/Blocks/Data/Logic/index.js.map +0 -1
  296. package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js.map +0 -1
  297. package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.d.ts +0 -19
  298. package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js +0 -26
  299. package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js.map +0 -1
  300. package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js +0 -25
  301. package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js.map +0 -1
  302. package/FlowGraph/Blocks/Execution/Audio/index.d.ts +0 -2
  303. package/FlowGraph/Blocks/Execution/Audio/index.js +0 -3
  304. package/FlowGraph/Blocks/Execution/Audio/index.js.map +0 -1
  305. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.d.ts +0 -31
  306. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js +0 -69
  307. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js.map +0 -1
  308. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js +0 -38
  309. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js.map +0 -1
  310. package/FlowGraph/flowGraphContextLogger.d.ts +0 -9
  311. package/FlowGraph/flowGraphContextLogger.js +0 -14
  312. package/FlowGraph/flowGraphContextLogger.js.map +0 -1
  313. package/FlowGraph/flowGraphInteger.js.map +0 -1
@@ -3,46 +3,41 @@ import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock";
3
3
  import { FlowGraphBlock } from "../../flowGraphBlock";
4
4
  import type { FlowGraphDataConnection } from "../../flowGraphDataConnection";
5
5
  /**
6
- * @experimental
7
6
  * The configuration of the FlowGraphGetVariableBlock.
8
7
  */
9
- export interface IFlowGraphGetVariableBlockConfiguration extends IFlowGraphBlockConfiguration {
8
+ export interface IFlowGraphGetVariableBlockConfiguration<T> extends IFlowGraphBlockConfiguration {
10
9
  /**
11
10
  * The name of the variable to get.
12
11
  */
13
- variableName: string;
12
+ variable: string;
13
+ /**
14
+ * The initial value of the variable.
15
+ */
16
+ initialValue?: T;
14
17
  }
15
18
  /**
16
19
  * A block that gets the value of a variable.
17
- * @experimental
20
+ * Variables are an stored in the context of the flow graph.
18
21
  */
19
22
  export declare class FlowGraphGetVariableBlock<T> extends FlowGraphBlock {
20
- config: IFlowGraphGetVariableBlockConfiguration;
23
+ config: IFlowGraphGetVariableBlockConfiguration<T>;
21
24
  /**
22
25
  * Output connection: The value of the variable.
23
26
  */
24
- readonly output: FlowGraphDataConnection<T>;
27
+ readonly value: FlowGraphDataConnection<T>;
25
28
  /**
26
29
  * Construct a FlowGraphGetVariableBlock.
27
30
  * @param config construction parameters
28
31
  */
29
- constructor(config: IFlowGraphGetVariableBlockConfiguration);
32
+ constructor(config: IFlowGraphGetVariableBlockConfiguration<T>);
30
33
  /**
31
34
  * @internal
32
35
  */
33
36
  _updateOutputs(context: FlowGraphContext): void;
34
- /**
35
- * Gets the class name of this block
36
- * @returns the class name
37
- */
38
- getClassName(): string;
39
37
  /**
40
38
  * Serializes this block
41
39
  * @param serializationObject the object to serialize to
42
40
  */
43
41
  serialize(serializationObject?: any): void;
44
- /**
45
- * Class name of the block.
46
- */
47
- static ClassName: string;
42
+ getClassName(): string;
48
43
  }
@@ -3,7 +3,7 @@ import { RichTypeAny } from "../../flowGraphRichTypes.js";
3
3
  import { RegisterClass } from "../../../Misc/typeStore.js";
4
4
  /**
5
5
  * A block that gets the value of a variable.
6
- * @experimental
6
+ * Variables are an stored in the context of the flow graph.
7
7
  */
8
8
  export class FlowGraphGetVariableBlock extends FlowGraphBlock {
9
9
  /**
@@ -14,36 +14,28 @@ export class FlowGraphGetVariableBlock extends FlowGraphBlock {
14
14
  super(config);
15
15
  this.config = config;
16
16
  // The output connection has to have the name of the variable.
17
- this.output = this.registerDataOutput(config.variableName, RichTypeAny);
17
+ this.value = this.registerDataOutput("value", RichTypeAny, config.initialValue);
18
18
  }
19
19
  /**
20
20
  * @internal
21
21
  */
22
22
  _updateOutputs(context) {
23
- const variableNameValue = this.config.variableName;
23
+ const variableNameValue = this.config.variable;
24
24
  if (context.hasVariable(variableNameValue)) {
25
- this.output.setValue(context.getVariable(variableNameValue), context);
25
+ this.value.setValue(context.getVariable(variableNameValue), context);
26
26
  }
27
27
  }
28
- /**
29
- * Gets the class name of this block
30
- * @returns the class name
31
- */
32
- getClassName() {
33
- return FlowGraphGetVariableBlock.ClassName;
34
- }
35
28
  /**
36
29
  * Serializes this block
37
30
  * @param serializationObject the object to serialize to
38
31
  */
39
32
  serialize(serializationObject) {
40
33
  super.serialize(serializationObject);
41
- serializationObject.config.variableName = this.config.variableName;
34
+ serializationObject.config.variable = this.config.variable;
35
+ }
36
+ getClassName() {
37
+ return "FlowGraphGetVariableBlock" /* FlowGraphBlockNames.GetVariable */;
42
38
  }
43
39
  }
44
- /**
45
- * Class name of the block.
46
- */
47
- FlowGraphGetVariableBlock.ClassName = "FGGetVariableBlock";
48
- RegisterClass(FlowGraphGetVariableBlock.ClassName, FlowGraphGetVariableBlock);
40
+ RegisterClass("FlowGraphGetVariableBlock" /* FlowGraphBlockNames.GetVariable */, FlowGraphGetVariableBlock);
49
41
  //# sourceMappingURL=flowGraphGetVariableBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphGetVariableBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAaxD;;;GAGG;AACH,MAAM,OAAO,yBAA6B,SAAQ,cAAc;IAM5D;;;OAGG;IACH,YAA4B,MAA+C;QACvE,KAAK,CAAC,MAAM,CAAC,CAAC;QADU,WAAM,GAAN,MAAM,CAAyC;QAGvE,8DAA8D;QAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACa,cAAc,CAAC,OAAyB;QACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QACnD,IAAI,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,yBAAyB,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACa,SAAS,CAAC,mBAAyB;QAC/C,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACrC,mBAAmB,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IACvE,CAAC;;AAED;;GAEG;AACW,mCAAS,GAAG,oBAAoB,CAAC;AAEnD,aAAa,CAAC,yBAAyB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC","sourcesContent":["import type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../flowGraphBlock\";\r\nimport type { FlowGraphDataConnection } from \"../../flowGraphDataConnection\";\r\nimport { RichTypeAny } from \"../../flowGraphRichTypes\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\n\r\n/**\r\n * @experimental\r\n * The configuration of the FlowGraphGetVariableBlock.\r\n */\r\nexport interface IFlowGraphGetVariableBlockConfiguration extends IFlowGraphBlockConfiguration {\r\n /**\r\n * The name of the variable to get.\r\n */\r\n variableName: string;\r\n}\r\n\r\n/**\r\n * A block that gets the value of a variable.\r\n * @experimental\r\n */\r\nexport class FlowGraphGetVariableBlock<T> extends FlowGraphBlock {\r\n /**\r\n * Output connection: The value of the variable.\r\n */\r\n public readonly output: FlowGraphDataConnection<T>;\r\n\r\n /**\r\n * Construct a FlowGraphGetVariableBlock.\r\n * @param config construction parameters\r\n */\r\n constructor(public override config: IFlowGraphGetVariableBlockConfiguration) {\r\n super(config);\r\n\r\n // The output connection has to have the name of the variable.\r\n this.output = this.registerDataOutput(config.variableName, RichTypeAny);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _updateOutputs(context: FlowGraphContext): void {\r\n const variableNameValue = this.config.variableName;\r\n if (context.hasVariable(variableNameValue)) {\r\n this.output.setValue(context.getVariable(variableNameValue), context);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the class name of this block\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphGetVariableBlock.ClassName;\r\n }\r\n\r\n /**\r\n * Serializes this block\r\n * @param serializationObject the object to serialize to\r\n */\r\n public override serialize(serializationObject?: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.config.variableName = this.config.variableName;\r\n }\r\n\r\n /**\r\n * Class name of the block.\r\n */\r\n public static ClassName = \"FGGetVariableBlock\";\r\n}\r\nRegisterClass(FlowGraphGetVariableBlock.ClassName, FlowGraphGetVariableBlock);\r\n"]}
1
+ {"version":3,"file":"flowGraphGetVariableBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAkBxD;;;GAGG;AACH,MAAM,OAAO,yBAA6B,SAAQ,cAAc;IAM5D;;;OAGG;IACH,YAA4B,MAAkD;QAC1E,KAAK,CAAC,MAAM,CAAC,CAAC;QADU,WAAM,GAAN,MAAM,CAA4C;QAG1E,8DAA8D;QAC9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACa,cAAc,CAAC,OAAyB;QACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC/C,IAAI,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAED;;;OAGG;IACa,SAAS,CAAC,mBAAyB;QAC/C,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACrC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC/D,CAAC;IAEe,YAAY;QACxB,yEAAuC;IAC3C,CAAC;CACJ;AAED,aAAa,oEAAkC,yBAAyB,CAAC,CAAC","sourcesContent":["import type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../flowGraphBlock\";\r\nimport type { FlowGraphDataConnection } from \"../../flowGraphDataConnection\";\r\nimport { RichTypeAny } from \"../../flowGraphRichTypes\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\r\n\r\n/**\r\n * The configuration of the FlowGraphGetVariableBlock.\r\n */\r\nexport interface IFlowGraphGetVariableBlockConfiguration<T> extends IFlowGraphBlockConfiguration {\r\n /**\r\n * The name of the variable to get.\r\n */\r\n variable: string;\r\n\r\n /**\r\n * The initial value of the variable.\r\n */\r\n initialValue?: T;\r\n}\r\n\r\n/**\r\n * A block that gets the value of a variable.\r\n * Variables are an stored in the context of the flow graph.\r\n */\r\nexport class FlowGraphGetVariableBlock<T> extends FlowGraphBlock {\r\n /**\r\n * Output connection: The value of the variable.\r\n */\r\n public readonly value: FlowGraphDataConnection<T>;\r\n\r\n /**\r\n * Construct a FlowGraphGetVariableBlock.\r\n * @param config construction parameters\r\n */\r\n constructor(public override config: IFlowGraphGetVariableBlockConfiguration<T>) {\r\n super(config);\r\n\r\n // The output connection has to have the name of the variable.\r\n this.value = this.registerDataOutput(\"value\", RichTypeAny, config.initialValue);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _updateOutputs(context: FlowGraphContext): void {\r\n const variableNameValue = this.config.variable;\r\n if (context.hasVariable(variableNameValue)) {\r\n this.value.setValue(context.getVariable(variableNameValue), context);\r\n }\r\n }\r\n\r\n /**\r\n * Serializes this block\r\n * @param serializationObject the object to serialize to\r\n */\r\n public override serialize(serializationObject?: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.config.variable = this.config.variable;\r\n }\r\n\r\n public override getClassName(): string {\r\n return FlowGraphBlockNames.GetVariable;\r\n }\r\n}\r\n\r\nRegisterClass(FlowGraphBlockNames.GetVariable, FlowGraphGetVariableBlock);\r\n"]}
@@ -4,7 +4,7 @@ import type { FlowGraphContext } from "../../flowGraphContext";
4
4
  import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock";
5
5
  import { FlowGraphCachedOperationBlock } from "./flowGraphCachedOperationBlock";
6
6
  /**
7
- * @experimental
7
+ * @internal
8
8
  * The base block for all ternary operation blocks.
9
9
  */
10
10
  export declare class FlowGraphTernaryOperationBlock<T1, T2, T3, ResultT> extends FlowGraphCachedOperationBlock<ResultT> {
@@ -1,6 +1,6 @@
1
1
  import { FlowGraphCachedOperationBlock } from "./flowGraphCachedOperationBlock.js";
2
2
  /**
3
- * @experimental
3
+ * @internal
4
4
  * The base block for all ternary operation blocks.
5
5
  */
6
6
  export class FlowGraphTernaryOperationBlock extends FlowGraphCachedOperationBlock {
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphTernaryOperationBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF;;;GAGG;AACH,MAAM,OAAO,8BAAoD,SAAQ,6BAAsC;IAc3G,YACI,MAAoB,EACpB,MAAoB,EACpB,MAAoB,EACpB,cAAiC,EACzB,UAA4C,EAC5C,UAAkB,EAC1B,MAAqC;QAErC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAJtB,eAAU,GAAV,UAAU,CAAkC;QAC5C,eAAU,GAAV,UAAU,CAAQ;QAI1B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACa,YAAY,CAAC,OAAyB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACzG,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ","sourcesContent":["import type { FlowGraphDataConnection } from \"../../flowGraphDataConnection\";\r\nimport type { RichType } from \"../../flowGraphRichTypes\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { FlowGraphCachedOperationBlock } from \"./flowGraphCachedOperationBlock\";\r\n/**\r\n * @experimental\r\n * The base block for all ternary operation blocks.\r\n */\r\nexport class FlowGraphTernaryOperationBlock<T1, T2, T3, ResultT> extends FlowGraphCachedOperationBlock<ResultT> {\r\n /**\r\n * First input of this block\r\n */\r\n a: FlowGraphDataConnection<T1>;\r\n /**\r\n * Second input of this block\r\n */\r\n b: FlowGraphDataConnection<T2>;\r\n /**\r\n * Third input of this block\r\n */\r\n c: FlowGraphDataConnection<T3>;\r\n\r\n constructor(\r\n t1Type: RichType<T1>,\r\n t2Type: RichType<T2>,\r\n t3Type: RichType<T3>,\r\n resultRichType: RichType<ResultT>,\r\n private _operation: (a: T1, b: T2, c: T3) => ResultT,\r\n private _className: string,\r\n config?: IFlowGraphBlockConfiguration\r\n ) {\r\n super(resultRichType, config);\r\n this.a = this.registerDataInput(\"a\", t1Type);\r\n this.b = this.registerDataInput(\"b\", t2Type);\r\n this.c = this.registerDataInput(\"c\", t3Type);\r\n }\r\n\r\n /**\r\n * the operation performed by this block\r\n * @param context the graph context\r\n * @returns the result of the operation\r\n */\r\n public override _doOperation(context: FlowGraphContext): ResultT {\r\n return this._operation(this.a.getValue(context), this.b.getValue(context), this.c.getValue(context));\r\n }\r\n\r\n /**\r\n * Gets the class name of this block\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return this._className;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"flowGraphTernaryOperationBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF;;;GAGG;AACH,MAAM,OAAO,8BAAoD,SAAQ,6BAAsC;IAc3G,YACI,MAAoB,EACpB,MAAoB,EACpB,MAAoB,EACpB,cAAiC,EACzB,UAA4C,EAC5C,UAAkB,EAC1B,MAAqC;QAErC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAJtB,eAAU,GAAV,UAAU,CAAkC;QAC5C,eAAU,GAAV,UAAU,CAAQ;QAI1B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACa,YAAY,CAAC,OAAyB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACzG,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ","sourcesContent":["import type { FlowGraphDataConnection } from \"../../flowGraphDataConnection\";\r\nimport type { RichType } from \"../../flowGraphRichTypes\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { FlowGraphCachedOperationBlock } from \"./flowGraphCachedOperationBlock\";\r\n/**\r\n * @internal\r\n * The base block for all ternary operation blocks.\r\n */\r\nexport class FlowGraphTernaryOperationBlock<T1, T2, T3, ResultT> extends FlowGraphCachedOperationBlock<ResultT> {\r\n /**\r\n * First input of this block\r\n */\r\n a: FlowGraphDataConnection<T1>;\r\n /**\r\n * Second input of this block\r\n */\r\n b: FlowGraphDataConnection<T2>;\r\n /**\r\n * Third input of this block\r\n */\r\n c: FlowGraphDataConnection<T3>;\r\n\r\n constructor(\r\n t1Type: RichType<T1>,\r\n t2Type: RichType<T2>,\r\n t3Type: RichType<T3>,\r\n resultRichType: RichType<ResultT>,\r\n private _operation: (a: T1, b: T2, c: T3) => ResultT,\r\n private _className: string,\r\n config?: IFlowGraphBlockConfiguration\r\n ) {\r\n super(resultRichType, config);\r\n this.a = this.registerDataInput(\"a\", t1Type);\r\n this.b = this.registerDataInput(\"b\", t2Type);\r\n this.c = this.registerDataInput(\"c\", t3Type);\r\n }\r\n\r\n /**\r\n * the operation performed by this block\r\n * @param context the graph context\r\n * @returns the result of the operation\r\n */\r\n public override _doOperation(context: FlowGraphContext): ResultT {\r\n return this._operation(this.a.getValue(context), this.b.getValue(context), this.c.getValue(context));\r\n }\r\n\r\n /**\r\n * Gets the class name of this block\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return this._className;\r\n }\r\n}\r\n"]}
@@ -5,10 +5,9 @@ import { Vector3 } from "../../../Maths/math.vector";
5
5
  import type { TransformNode } from "../../../Meshes/transformNode";
6
6
  import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock";
7
7
  /**
8
- * @experimental
9
8
  * This blocks transforms a vector from one coordinate system to another.
10
9
  */
11
- export declare class FlowGraphCoordinateTransformBlock extends FlowGraphBlock {
10
+ export declare class FlowGraphTransformCoordinatesSystemBlock extends FlowGraphBlock {
12
11
  /**
13
12
  * Input connection: The source coordinate system.
14
13
  */
@@ -3,10 +3,9 @@ import { RichTypeAny, RichTypeVector3 } from "../../flowGraphRichTypes.js";
3
3
  import { TmpVectors, Vector3 } from "../../../Maths/math.vector.js";
4
4
  import { RegisterClass } from "../../../Misc/typeStore.js";
5
5
  /**
6
- * @experimental
7
6
  * This blocks transforms a vector from one coordinate system to another.
8
7
  */
9
- export class FlowGraphCoordinateTransformBlock extends FlowGraphBlock {
8
+ export class FlowGraphTransformCoordinatesSystemBlock extends FlowGraphBlock {
10
9
  /**
11
10
  * Creates a new FlowGraphCoordinateTransformBlock
12
11
  * @param config optional configuration for this block
@@ -40,8 +39,8 @@ export class FlowGraphCoordinateTransformBlock extends FlowGraphBlock {
40
39
  * @returns the class name
41
40
  */
42
41
  getClassName() {
43
- return "FGCoordinateTransformBlock";
42
+ return "FlowGraphTransformCoordinatesSystemBlock" /* FlowGraphBlockNames.TransformCoordinatesSystem */;
44
43
  }
45
44
  }
46
- RegisterClass("FGCoordinateTransformBlock", FlowGraphCoordinateTransformBlock);
47
- //# sourceMappingURL=flowGraphCoordinateTransformBlock.js.map
45
+ RegisterClass("FlowGraphTransformCoordinatesSystemBlock" /* FlowGraphBlockNames.TransformCoordinatesSystem */, FlowGraphTransformCoordinatesSystemBlock);
46
+ //# sourceMappingURL=flowGraphTransformCoordinatesSystemBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowGraphTransformCoordinatesSystemBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphTransformCoordinatesSystemBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD;;GAEG;AACH,MAAM,OAAO,wCAAyC,SAAQ,cAAc;IAkBxE;;;OAGG;IACH,YAAY,MAAqC;QAC7C,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACxE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAClF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;QACpF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IAC3F,CAAC;IAEe,cAAc,CAAC,QAA0B;QACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEvE,qDAAqD;QACrD,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,EAAE,CAAC;QACvD,0DAA0D;QAC1D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,cAAc,EAAE,CAAC;QACjE,MAAM,uBAAuB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAChF,0DAA0D;QAC1D,uBAAuB,CAAC,MAAM,EAAE,CAAC;QAEjC,MAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjD,0EAA0E;QAC1E,uBAAuB,CAAC,aAAa,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACxE,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEzE,OAAO,CAAC,yBAAyB,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,CAAC;IAC1G,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,uGAAsD;IAC1D,CAAC;CACJ;AACD,aAAa,kGAAiD,wCAAwC,CAAC,CAAC","sourcesContent":["import { FlowGraphBlock } from \"../../flowGraphBlock\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport type { FlowGraphDataConnection } from \"../../flowGraphDataConnection\";\r\nimport { RichTypeAny, RichTypeVector3 } from \"../../flowGraphRichTypes\";\r\nimport { TmpVectors, Vector3 } from \"../../../Maths/math.vector\";\r\nimport type { TransformNode } from \"../../../Meshes/transformNode\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\r\n\r\n/**\r\n * This blocks transforms a vector from one coordinate system to another.\r\n */\r\nexport class FlowGraphTransformCoordinatesSystemBlock extends FlowGraphBlock {\r\n /**\r\n * Input connection: The source coordinate system.\r\n */\r\n public readonly sourceSystem: FlowGraphDataConnection<TransformNode>;\r\n /**\r\n * Input connection: The destination coordinate system.\r\n */\r\n public readonly destinationSystem: FlowGraphDataConnection<TransformNode>;\r\n /**\r\n * Input connection: The coordinates to transform.\r\n */\r\n public readonly inputCoordinates: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Output connection: The transformed coordinates.\r\n */\r\n public readonly outputCoordinates: FlowGraphDataConnection<Vector3>;\r\n\r\n /**\r\n * Creates a new FlowGraphCoordinateTransformBlock\r\n * @param config optional configuration for this block\r\n */\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.sourceSystem = this.registerDataInput(\"sourceSystem\", RichTypeAny);\r\n this.destinationSystem = this.registerDataInput(\"destinationSystem\", RichTypeAny);\r\n this.inputCoordinates = this.registerDataInput(\"inputCoordinates\", RichTypeVector3);\r\n this.outputCoordinates = this.registerDataOutput(\"outputCoordinates\", RichTypeVector3);\r\n }\r\n\r\n public override _updateOutputs(_context: FlowGraphContext): void {\r\n const sourceSystemValue = this.sourceSystem.getValue(_context);\r\n const destinationSystemValue = this.destinationSystem.getValue(_context);\r\n const inputCoordinatesValue = this.inputCoordinates.getValue(_context);\r\n\r\n // takes coordinates from source space to world space\r\n const sourceWorld = sourceSystemValue.getWorldMatrix();\r\n // takes coordinates from destination space to world space\r\n const destinationWorld = destinationSystemValue.getWorldMatrix();\r\n const destinationWorldInverse = TmpVectors.Matrix[0].copyFrom(destinationWorld);\r\n // takes coordinates from world space to destination space\r\n destinationWorldInverse.invert();\r\n\r\n const sourceToDestination = TmpVectors.Matrix[1];\r\n // takes coordinates from source space to world space to destination space\r\n destinationWorldInverse.multiplyToRef(sourceWorld, sourceToDestination);\r\n const outputCoordinatesValue = this.outputCoordinates.getValue(_context);\r\n\r\n Vector3.TransformCoordinatesToRef(inputCoordinatesValue, sourceToDestination, outputCoordinatesValue);\r\n }\r\n\r\n /**\r\n * Gets the class name of this block\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphBlockNames.TransformCoordinatesSystem;\r\n }\r\n}\r\nRegisterClass(FlowGraphBlockNames.TransformCoordinatesSystem, FlowGraphTransformCoordinatesSystemBlock);\r\n"]}
@@ -4,7 +4,7 @@ import type { RichType } from "../../flowGraphRichTypes";
4
4
  import type { FlowGraphContext } from "../../flowGraphContext";
5
5
  import { FlowGraphCachedOperationBlock } from "./flowGraphCachedOperationBlock";
6
6
  /**
7
- * @experimental
7
+ * @internal
8
8
  * The base block for all unary operation blocks. Receives an input of type InputT, and outputs a value of type ResultT.
9
9
  */
10
10
  export declare class FlowGraphUnaryOperationBlock<InputT, ResultT> extends FlowGraphCachedOperationBlock<ResultT> {
@@ -1,6 +1,6 @@
1
1
  import { FlowGraphCachedOperationBlock } from "./flowGraphCachedOperationBlock.js";
2
2
  /**
3
- * @experimental
3
+ * @internal
4
4
  * The base block for all unary operation blocks. Receives an input of type InputT, and outputs a value of type ResultT.
5
5
  */
6
6
  export class FlowGraphUnaryOperationBlock extends FlowGraphCachedOperationBlock {
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphUnaryOperationBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF;;;GAGG;AACH,MAAM,OAAO,4BAA8C,SAAQ,6BAAsC;IAMrG,YACI,aAA+B,EAC/B,cAAiC,EACzB,UAAsC,EACtC,UAAkB,EAC1B,MAAqC;QAErC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAJtB,eAAU,GAAV,UAAU,CAA4B;QACtC,eAAU,GAAV,UAAU,CAAQ;QAI1B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACa,YAAY,CAAC,OAAyB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ","sourcesContent":["import type { FlowGraphDataConnection } from \"../../flowGraphDataConnection\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport type { RichType } from \"../../flowGraphRichTypes\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport { FlowGraphCachedOperationBlock } from \"./flowGraphCachedOperationBlock\";\r\n\r\n/**\r\n * @experimental\r\n * The base block for all unary operation blocks. Receives an input of type InputT, and outputs a value of type ResultT.\r\n */\r\nexport class FlowGraphUnaryOperationBlock<InputT, ResultT> extends FlowGraphCachedOperationBlock<ResultT> {\r\n /**\r\n * the input of this block\r\n */\r\n a: FlowGraphDataConnection<InputT>;\r\n\r\n constructor(\r\n inputRichType: RichType<InputT>,\r\n resultRichType: RichType<ResultT>,\r\n private _operation: (input: InputT) => ResultT,\r\n private _className: string,\r\n config?: IFlowGraphBlockConfiguration\r\n ) {\r\n super(resultRichType, config);\r\n this.a = this.registerDataInput(\"a\", inputRichType);\r\n }\r\n\r\n /**\r\n * the operation performed by this block\r\n * @param context the graph context\r\n * @returns the result of the operation\r\n */\r\n public override _doOperation(context: FlowGraphContext): ResultT {\r\n return this._operation(this.a.getValue(context));\r\n }\r\n\r\n /**\r\n * Gets the class name of this block\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return this._className;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"flowGraphUnaryOperationBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF;;;GAGG;AACH,MAAM,OAAO,4BAA8C,SAAQ,6BAAsC;IAMrG,YACI,aAA+B,EAC/B,cAAiC,EACzB,UAAsC,EACtC,UAAkB,EAC1B,MAAqC;QAErC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAJtB,eAAU,GAAV,UAAU,CAA4B;QACtC,eAAU,GAAV,UAAU,CAAQ;QAI1B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACa,YAAY,CAAC,OAAyB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ","sourcesContent":["import type { FlowGraphDataConnection } from \"../../flowGraphDataConnection\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport type { RichType } from \"../../flowGraphRichTypes\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport { FlowGraphCachedOperationBlock } from \"./flowGraphCachedOperationBlock\";\r\n\r\n/**\r\n * @internal\r\n * The base block for all unary operation blocks. Receives an input of type InputT, and outputs a value of type ResultT.\r\n */\r\nexport class FlowGraphUnaryOperationBlock<InputT, ResultT> extends FlowGraphCachedOperationBlock<ResultT> {\r\n /**\r\n * the input of this block\r\n */\r\n a: FlowGraphDataConnection<InputT>;\r\n\r\n constructor(\r\n inputRichType: RichType<InputT>,\r\n resultRichType: RichType<ResultT>,\r\n private _operation: (input: InputT) => ResultT,\r\n private _className: string,\r\n config?: IFlowGraphBlockConfiguration\r\n ) {\r\n super(resultRichType, config);\r\n this.a = this.registerDataInput(\"a\", inputRichType);\r\n }\r\n\r\n /**\r\n * the operation performed by this block\r\n * @param context the graph context\r\n * @returns the result of the operation\r\n */\r\n public override _doOperation(context: FlowGraphContext): ResultT {\r\n return this._operation(this.a.getValue(context));\r\n }\r\n\r\n /**\r\n * Gets the class name of this block\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return this._className;\r\n }\r\n}\r\n"]}
@@ -1,7 +1,11 @@
1
1
  export * from "./flowGraphConditionalDataBlock";
2
2
  export * from "./flowGraphGetVariableBlock";
3
- export * from "./flowGraphCoordinateTransformBlock";
4
- export * from "./flowGraphConstantBlock";
3
+ export * from "../Execution/flowGraphSetVariableBlock";
4
+ export * from "./flowGraphTransformCoordinatesSystemBlock";
5
5
  export * from "./flowGraphGetPropertyBlock";
6
- export * from "./Logic/index";
6
+ export * from "../Execution/flowGraphSetPropertyBlock";
7
+ export * from "./flowGraphConstantBlock";
8
+ export * from "./flowGraphGetAssetBlock";
7
9
  export * from "./Math/index";
10
+ export * from "./Transformers/index";
11
+ export * from "./Utils/index";
@@ -1,10 +1,15 @@
1
1
  export * from "./flowGraphConditionalDataBlock.js";
2
2
  export * from "./flowGraphGetVariableBlock.js";
3
- export * from "./flowGraphCoordinateTransformBlock.js";
4
- export * from "./flowGraphConstantBlock.js";
3
+ export * from "../Execution/flowGraphSetVariableBlock.js";
4
+ export * from "./flowGraphTransformCoordinatesSystemBlock.js";
5
5
  export * from "./flowGraphGetPropertyBlock.js";
6
- // eslint-disable-next-line import/no-internal-modules
7
- export * from "./Logic/index.js";
6
+ export * from "../Execution/flowGraphSetPropertyBlock.js";
7
+ export * from "./flowGraphConstantBlock.js";
8
+ export * from "./flowGraphGetAssetBlock.js";
8
9
  // eslint-disable-next-line import/no-internal-modules
9
10
  export * from "./Math/index.js";
11
+ // eslint-disable-next-line import/no-internal-modules
12
+ export * from "./Transformers/index.js";
13
+ // eslint-disable-next-line import/no-internal-modules
14
+ export * from "./Utils/index.js";
10
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,sDAAsD;AACtD,cAAc,eAAe,CAAC;AAC9B,sDAAsD;AACtD,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./flowGraphConditionalDataBlock\";\r\nexport * from \"./flowGraphGetVariableBlock\";\r\nexport * from \"./flowGraphCoordinateTransformBlock\";\r\nexport * from \"./flowGraphConstantBlock\";\r\nexport * from \"./flowGraphGetPropertyBlock\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nexport * from \"./Logic/index\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nexport * from \"./Math/index\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,sDAAsD;AACtD,cAAc,cAAc,CAAC;AAC7B,sDAAsD;AACtD,cAAc,sBAAsB,CAAC;AACrC,sDAAsD;AACtD,cAAc,eAAe,CAAC","sourcesContent":["export * from \"./flowGraphConditionalDataBlock\";\r\nexport * from \"./flowGraphGetVariableBlock\";\r\nexport * from \"../Execution/flowGraphSetVariableBlock\";\r\nexport * from \"./flowGraphTransformCoordinatesSystemBlock\";\r\nexport * from \"./flowGraphGetPropertyBlock\";\r\nexport * from \"../Execution/flowGraphSetPropertyBlock\";\r\nexport * from \"./flowGraphConstantBlock\";\r\nexport * from \"./flowGraphGetAssetBlock\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nexport * from \"./Math/index\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nexport * from \"./Transformers/index\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nexport * from \"./Utils/index\";\r\n"]}
@@ -1,57 +1,78 @@
1
- import { AbstractMesh } from "../../../Meshes/abstractMesh";
1
+ import type { AbstractMesh } from "../../../Meshes/abstractMesh";
2
2
  import { FlowGraphEventBlock } from "../../flowGraphEventBlock";
3
+ import type { PointerInfo } from "../../../Events/pointerEvents";
4
+ import { PointerEventTypes } from "../../../Events/pointerEvents";
3
5
  import type { FlowGraphContext } from "../../flowGraphContext";
4
6
  import type { IFlowGraphBlockConfiguration } from "../../flowGraphBlock";
5
- import type { IPathToObjectConverter } from "../../../ObjectModel/objectModelInterfaces";
6
- import type { IObjectAccessor } from "../../typeDefinitions";
7
+ import type { FlowGraphDataConnection } from "../../flowGraphDataConnection.js";
8
+ import type { Vector3 } from "../../../Maths/math.vector.js";
9
+ import { FlowGraphEventType } from "../../flowGraphEventType.js";
7
10
  /**
8
- * @experimental
11
+ * Configuration for the mesh pick event block.
9
12
  */
10
13
  export interface IFlowGraphMeshPickEventBlockConfiguration extends IFlowGraphBlockConfiguration {
11
14
  /**
12
- * The path of the mesh to pick.
15
+ * Should this mesh block propagation of the event.
13
16
  */
14
- path: string;
17
+ stopPropagation?: boolean;
15
18
  /**
16
- * The path converter to use to convert the path to an object accessor.
19
+ * The mesh to listen to. Can also be set by the asset input.
17
20
  */
18
- pathConverter: IPathToObjectConverter<IObjectAccessor>;
21
+ targetMesh?: AbstractMesh;
19
22
  }
20
23
  /**
21
- * @experimental
22
24
  * A block that activates when a mesh is picked.
23
25
  */
24
26
  export declare class FlowGraphMeshPickEventBlock extends FlowGraphEventBlock {
25
27
  /**
26
28
  * the configuration of the block
27
29
  */
28
- config: IFlowGraphMeshPickEventBlockConfiguration;
30
+ config?: IFlowGraphMeshPickEventBlockConfiguration | undefined;
31
+ /**
32
+ * Input connection: The mesh to listen to.
33
+ */
34
+ readonly asset: FlowGraphDataConnection<AbstractMesh>;
35
+ /**
36
+ * Output connection: The picked point.
37
+ */
38
+ readonly pickedPoint: FlowGraphDataConnection<Vector3>;
39
+ /**
40
+ * Output connection: The picked origin.
41
+ */
42
+ readonly pickOrigin: FlowGraphDataConnection<Vector3>;
43
+ /**
44
+ * Output connection: The pointer id.
45
+ */
46
+ readonly pointerId: FlowGraphDataConnection<number>;
47
+ /**
48
+ * Output connection: The picked mesh. Possibly NOT the same as the asset (could be a descendant).
49
+ */
50
+ readonly pickedMesh: FlowGraphDataConnection<AbstractMesh>;
51
+ /**
52
+ * Input connection: The type of the pointer event.
53
+ */
54
+ readonly pointerType: FlowGraphDataConnection<PointerEventTypes>;
55
+ /**
56
+ * the type of the event this block reacts to
57
+ */
58
+ readonly type: FlowGraphEventType;
29
59
  constructor(
30
60
  /**
31
61
  * the configuration of the block
32
62
  */
33
- config: IFlowGraphMeshPickEventBlockConfiguration);
34
- _getReferencedMesh(): AbstractMesh;
63
+ config?: IFlowGraphMeshPickEventBlockConfiguration | undefined);
64
+ _getReferencedMesh(context: FlowGraphContext): AbstractMesh;
65
+ _executeEvent(context: FlowGraphContext, pickedInfo: PointerInfo): boolean;
35
66
  /**
36
67
  * @internal
37
68
  */
38
- _preparePendingTasks(context: FlowGraphContext): void;
39
- _onDispose(context: FlowGraphContext): void;
69
+ _preparePendingTasks(_context: FlowGraphContext): void;
40
70
  /**
41
71
  * @internal
42
72
  */
43
- _cancelPendingTasks(context: FlowGraphContext): void;
73
+ _cancelPendingTasks(_context: FlowGraphContext): void;
44
74
  /**
45
75
  * @returns class name of the block.
46
76
  */
47
77
  getClassName(): string;
48
- /**
49
- * Serializes the block to a JSON object.
50
- * @param serializationObject the object to serialize to.
51
- */
52
- serialize(serializationObject?: any): void;
53
- /**
54
- * Class name of the block.
55
- */
56
- static ClassName: string;
57
78
  }
@@ -1,10 +1,9 @@
1
- import { AbstractMesh } from "../../../Meshes/abstractMesh.js";
2
1
  import { FlowGraphEventBlock } from "../../flowGraphEventBlock.js";
3
2
  import { PointerEventTypes } from "../../../Events/pointerEvents.js";
4
3
  import { RegisterClass } from "../../../Misc/typeStore.js";
5
4
  import { _isADescendantOf } from "../../utils.js";
5
+ import { RichTypeAny, RichTypeNumber, RichTypeVector3 } from "../../flowGraphRichTypes.js";
6
6
  /**
7
- * @experimental
8
7
  * A block that activates when a mesh is picked.
9
8
  */
10
9
  export class FlowGraphMeshPickEventBlock extends FlowGraphEventBlock {
@@ -15,70 +14,65 @@ export class FlowGraphMeshPickEventBlock extends FlowGraphEventBlock {
15
14
  config) {
16
15
  super(config);
17
16
  this.config = config;
17
+ /**
18
+ * the type of the event this block reacts to
19
+ */
20
+ this.type = "MeshPick" /* FlowGraphEventType.MeshPick */;
21
+ this.asset = this.registerDataInput("asset", RichTypeAny, config?.targetMesh);
22
+ this.pickedPoint = this.registerDataOutput("pickedPoint", RichTypeVector3);
23
+ this.pickOrigin = this.registerDataOutput("pickOrigin", RichTypeVector3);
24
+ this.pointerId = this.registerDataOutput("pointerId", RichTypeNumber);
25
+ this.pickedMesh = this.registerDataOutput("pickedMesh", RichTypeAny);
26
+ this.pointerType = this.registerDataInput("pointerType", RichTypeAny, PointerEventTypes.POINTERPICK);
18
27
  }
19
- _getReferencedMesh() {
20
- const iAccessor = this.config.pathConverter.convert(this.config.path);
21
- const mesh = iAccessor.info.getObject(iAccessor.object);
22
- if (!mesh || !(mesh instanceof AbstractMesh)) {
23
- throw new Error("Mesh pick event block requires a valid mesh");
28
+ _getReferencedMesh(context) {
29
+ return this.asset.getValue(context);
30
+ }
31
+ _executeEvent(context, pickedInfo) {
32
+ // get the pointer type
33
+ const pointerType = this.pointerType.getValue(context);
34
+ if (pointerType !== pickedInfo.type) {
35
+ // returning true here to continue the propagation of the pointer event to the rest of the blocks
36
+ return true;
37
+ }
38
+ // check if the mesh is the picked mesh or a descendant
39
+ const mesh = this._getReferencedMesh(context);
40
+ if (mesh && pickedInfo.pickInfo?.pickedMesh && (pickedInfo.pickInfo?.pickedMesh === mesh || _isADescendantOf(pickedInfo.pickInfo?.pickedMesh, mesh))) {
41
+ this.pointerId.setValue(pickedInfo.event.pointerId, context);
42
+ this.pickOrigin.setValue(pickedInfo.pickInfo.ray?.origin, context);
43
+ this.pickedPoint.setValue(pickedInfo.pickInfo.pickedPoint, context);
44
+ this.pickedMesh.setValue(pickedInfo.pickInfo.pickedMesh, context);
45
+ this._execute(context);
46
+ // stop the propagation if the configuration says so
47
+ return !this.config?.stopPropagation;
48
+ }
49
+ else {
50
+ // reset the outputs
51
+ this.pointerId.resetToDefaultValue(context);
52
+ this.pickOrigin.resetToDefaultValue(context);
53
+ this.pickedPoint.resetToDefaultValue(context);
54
+ this.pickedMesh.resetToDefaultValue(context);
24
55
  }
25
- return mesh;
56
+ return true;
26
57
  }
27
58
  /**
28
59
  * @internal
29
60
  */
30
- _preparePendingTasks(context) {
31
- let pickObserver = context._getExecutionVariable(this, "meshPickObserver");
32
- if (!pickObserver) {
33
- const mesh = this._getReferencedMesh();
34
- context._setExecutionVariable(this, "mesh", mesh);
35
- pickObserver = mesh.getScene().onPointerObservable.add((pointerInfo) => {
36
- if (pointerInfo.type === PointerEventTypes.POINTERPICK &&
37
- pointerInfo.pickInfo?.pickedMesh &&
38
- (pointerInfo.pickInfo?.pickedMesh === mesh || _isADescendantOf(pointerInfo.pickInfo?.pickedMesh, mesh))) {
39
- this._execute(context);
40
- }
41
- });
42
- const disposeObserver = mesh.onDisposeObservable.add(() => this._onDispose);
43
- context._setExecutionVariable(this, "meshPickObserver", pickObserver);
44
- context._setExecutionVariable(this, "meshDisposeObserver", disposeObserver);
45
- }
46
- }
47
- _onDispose(context) {
48
- this._cancelPendingTasks(context);
49
- context._removePendingBlock(this);
61
+ _preparePendingTasks(_context) {
62
+ // no-op
50
63
  }
51
64
  /**
52
65
  * @internal
53
66
  */
54
- _cancelPendingTasks(context) {
55
- const mesh = context._getExecutionVariable(this, "mesh");
56
- const pickObserver = context._getExecutionVariable(this, "meshPickObserver");
57
- const disposeObserver = context._getExecutionVariable(this, "meshDisposeObserver");
58
- mesh.getScene().onPointerObservable.remove(pickObserver);
59
- mesh.onDisposeObservable.remove(disposeObserver);
60
- context._deleteExecutionVariable(this, "mesh");
61
- context._deleteExecutionVariable(this, "meshPickObserver");
62
- context._deleteExecutionVariable(this, "meshDisposeObserver");
67
+ _cancelPendingTasks(_context) {
68
+ // no-op
63
69
  }
64
70
  /**
65
71
  * @returns class name of the block.
66
72
  */
67
73
  getClassName() {
68
- return FlowGraphMeshPickEventBlock.ClassName;
69
- }
70
- /**
71
- * Serializes the block to a JSON object.
72
- * @param serializationObject the object to serialize to.
73
- */
74
- serialize(serializationObject) {
75
- super.serialize(serializationObject);
76
- serializationObject.config.path = this.config.path;
74
+ return "FlowGraphMeshPickEventBlock" /* FlowGraphBlockNames.MeshPickEvent */;
77
75
  }
78
76
  }
79
- /**
80
- * Class name of the block.
81
- */
82
- FlowGraphMeshPickEventBlock.ClassName = "FGMeshPickEventBlock";
83
- RegisterClass(FlowGraphMeshPickEventBlock.ClassName, FlowGraphMeshPickEventBlock);
77
+ RegisterClass("FlowGraphMeshPickEventBlock" /* FlowGraphBlockNames.MeshPickEvent */, FlowGraphMeshPickEventBlock);
84
78
  //# sourceMappingURL=flowGraphMeshPickEventBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphMeshPickEventBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { AbstractMesh } from \"../../../Meshes/abstractMesh\";\r\nimport { FlowGraphEventBlock } from \"../../flowGraphEventBlock\";\r\nimport { PointerEventTypes } from \"../../../Events/pointerEvents\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { _isADescendantOf } from \"../../utils\";\r\nimport type { IPathToObjectConverter } from \"../../../ObjectModel/objectModelInterfaces\";\r\nimport type { IObjectAccessor } from \"../../typeDefinitions\";\r\n/**\r\n * @experimental\r\n */\r\nexport interface IFlowGraphMeshPickEventBlockConfiguration extends IFlowGraphBlockConfiguration {\r\n /**\r\n * The path of the mesh to pick.\r\n */\r\n path: string;\r\n /**\r\n * The path converter to use to convert the path to an object accessor.\r\n */\r\n pathConverter: IPathToObjectConverter<IObjectAccessor>;\r\n}\r\n/**\r\n * @experimental\r\n * A block that activates when a mesh is picked.\r\n */\r\nexport class FlowGraphMeshPickEventBlock extends FlowGraphEventBlock {\r\n public constructor(\r\n /**\r\n * the configuration of the block\r\n */\r\n public override config: IFlowGraphMeshPickEventBlockConfiguration\r\n ) {\r\n super(config);\r\n }\r\n\r\n public _getReferencedMesh(): AbstractMesh {\r\n const iAccessor = this.config.pathConverter.convert(this.config.path);\r\n\r\n const mesh = iAccessor.info.getObject(iAccessor.object) as AbstractMesh;\r\n if (!mesh || !(mesh instanceof AbstractMesh)) {\r\n throw new Error(\"Mesh pick event block requires a valid mesh\");\r\n }\r\n return mesh;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _preparePendingTasks(context: FlowGraphContext): void {\r\n let pickObserver = context._getExecutionVariable(this, \"meshPickObserver\");\r\n if (!pickObserver) {\r\n const mesh = this._getReferencedMesh();\r\n context._setExecutionVariable(this, \"mesh\", mesh);\r\n pickObserver = mesh.getScene().onPointerObservable.add((pointerInfo) => {\r\n if (\r\n pointerInfo.type === PointerEventTypes.POINTERPICK &&\r\n pointerInfo.pickInfo?.pickedMesh &&\r\n (pointerInfo.pickInfo?.pickedMesh === mesh || _isADescendantOf(pointerInfo.pickInfo?.pickedMesh, mesh))\r\n ) {\r\n this._execute(context);\r\n }\r\n });\r\n const disposeObserver = mesh.onDisposeObservable.add(() => this._onDispose);\r\n context._setExecutionVariable(this, \"meshPickObserver\", pickObserver);\r\n context._setExecutionVariable(this, \"meshDisposeObserver\", disposeObserver);\r\n }\r\n }\r\n\r\n public _onDispose(context: FlowGraphContext) {\r\n this._cancelPendingTasks(context);\r\n context._removePendingBlock(this);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _cancelPendingTasks(context: FlowGraphContext): void {\r\n const mesh = context._getExecutionVariable(this, \"mesh\");\r\n const pickObserver = context._getExecutionVariable(this, \"meshPickObserver\");\r\n const disposeObserver = context._getExecutionVariable(this, \"meshDisposeObserver\");\r\n\r\n mesh.getScene().onPointerObservable.remove(pickObserver);\r\n mesh.onDisposeObservable.remove(disposeObserver);\r\n\r\n context._deleteExecutionVariable(this, \"mesh\");\r\n context._deleteExecutionVariable(this, \"meshPickObserver\");\r\n context._deleteExecutionVariable(this, \"meshDisposeObserver\");\r\n }\r\n\r\n /**\r\n * @returns class name of the block.\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphMeshPickEventBlock.ClassName;\r\n }\r\n\r\n /**\r\n * Serializes the block to a JSON object.\r\n * @param serializationObject the object to serialize to.\r\n */\r\n public override serialize(serializationObject?: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.config.path = this.config.path;\r\n }\r\n\r\n /**\r\n * Class name of the block.\r\n */\r\n public static ClassName = \"FGMeshPickEventBlock\";\r\n}\r\nRegisterClass(FlowGraphMeshPickEventBlock.ClassName, FlowGraphMeshPickEventBlock);\r\n"]}
1
+ {"version":3,"file":"flowGraphMeshPickEventBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AbstractMesh } from \"../../../Meshes/abstractMesh\";\r\nimport { FlowGraphEventBlock } from \"../../flowGraphEventBlock\";\r\nimport type { PointerInfo } from \"../../../Events/pointerEvents\";\r\nimport { PointerEventTypes } from \"../../../Events/pointerEvents\";\r\nimport type { FlowGraphContext } from \"../../flowGraphContext\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { _isADescendantOf } from \"../../utils\";\r\nimport { FlowGraphBlockNames } from \"../flowGraphBlockNames\";\r\nimport type { FlowGraphDataConnection } from \"core/FlowGraph/flowGraphDataConnection\";\r\nimport { RichTypeAny, RichTypeNumber, RichTypeVector3 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport type { Vector3 } from \"core/Maths/math.vector\";\r\nimport { FlowGraphEventType } from \"core/FlowGraph/flowGraphEventType\";\r\n/**\r\n * Configuration for the mesh pick event block.\r\n */\r\nexport interface IFlowGraphMeshPickEventBlockConfiguration extends IFlowGraphBlockConfiguration {\r\n /**\r\n * Should this mesh block propagation of the event.\r\n */\r\n stopPropagation?: boolean;\r\n\r\n /**\r\n * The mesh to listen to. Can also be set by the asset input.\r\n */\r\n targetMesh?: AbstractMesh;\r\n}\r\n/**\r\n * A block that activates when a mesh is picked.\r\n */\r\nexport class FlowGraphMeshPickEventBlock extends FlowGraphEventBlock {\r\n /**\r\n * Input connection: The mesh to listen to.\r\n */\r\n public readonly asset: FlowGraphDataConnection<AbstractMesh>;\r\n\r\n /**\r\n * Output connection: The picked point.\r\n */\r\n public readonly pickedPoint: FlowGraphDataConnection<Vector3>;\r\n\r\n /**\r\n * Output connection: The picked origin.\r\n */\r\n public readonly pickOrigin: FlowGraphDataConnection<Vector3>;\r\n\r\n /**\r\n * Output connection: The pointer id.\r\n */\r\n public readonly pointerId: FlowGraphDataConnection<number>;\r\n\r\n /**\r\n * Output connection: The picked mesh. Possibly NOT the same as the asset (could be a descendant).\r\n */\r\n public readonly pickedMesh: FlowGraphDataConnection<AbstractMesh>;\r\n\r\n /**\r\n * Input connection: The type of the pointer event.\r\n */\r\n public readonly pointerType: FlowGraphDataConnection<PointerEventTypes>;\r\n\r\n /**\r\n * the type of the event this block reacts to\r\n */\r\n public override readonly type: FlowGraphEventType = FlowGraphEventType.MeshPick;\r\n\r\n public constructor(\r\n /**\r\n * the configuration of the block\r\n */\r\n public override config?: IFlowGraphMeshPickEventBlockConfiguration\r\n ) {\r\n super(config);\r\n this.asset = this.registerDataInput(\"asset\", RichTypeAny, config?.targetMesh);\r\n this.pickedPoint = this.registerDataOutput(\"pickedPoint\", RichTypeVector3);\r\n this.pickOrigin = this.registerDataOutput(\"pickOrigin\", RichTypeVector3);\r\n this.pointerId = this.registerDataOutput(\"pointerId\", RichTypeNumber);\r\n this.pickedMesh = this.registerDataOutput(\"pickedMesh\", RichTypeAny);\r\n this.pointerType = this.registerDataInput(\"pointerType\", RichTypeAny, PointerEventTypes.POINTERPICK);\r\n }\r\n\r\n public _getReferencedMesh(context: FlowGraphContext): AbstractMesh {\r\n return this.asset.getValue(context) as AbstractMesh;\r\n }\r\n\r\n public override _executeEvent(context: FlowGraphContext, pickedInfo: PointerInfo): boolean {\r\n // get the pointer type\r\n const pointerType = this.pointerType.getValue(context);\r\n if (pointerType !== pickedInfo.type) {\r\n // returning true here to continue the propagation of the pointer event to the rest of the blocks\r\n return true;\r\n }\r\n // check if the mesh is the picked mesh or a descendant\r\n const mesh = this._getReferencedMesh(context);\r\n if (mesh && pickedInfo.pickInfo?.pickedMesh && (pickedInfo.pickInfo?.pickedMesh === mesh || _isADescendantOf(pickedInfo.pickInfo?.pickedMesh, mesh))) {\r\n this.pointerId.setValue((pickedInfo.event as PointerEvent).pointerId, context);\r\n this.pickOrigin.setValue(pickedInfo.pickInfo.ray?.origin!, context);\r\n this.pickedPoint.setValue(pickedInfo.pickInfo.pickedPoint!, context);\r\n this.pickedMesh.setValue(pickedInfo.pickInfo.pickedMesh, context);\r\n this._execute(context);\r\n // stop the propagation if the configuration says so\r\n return !this.config?.stopPropagation;\r\n } else {\r\n // reset the outputs\r\n this.pointerId.resetToDefaultValue(context);\r\n this.pickOrigin.resetToDefaultValue(context);\r\n this.pickedPoint.resetToDefaultValue(context);\r\n this.pickedMesh.resetToDefaultValue(context);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _preparePendingTasks(_context: FlowGraphContext): void {\r\n // no-op\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _cancelPendingTasks(_context: FlowGraphContext): void {\r\n // no-op\r\n }\r\n\r\n /**\r\n * @returns class name of the block.\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphBlockNames.MeshPickEvent;\r\n }\r\n}\r\nRegisterClass(FlowGraphBlockNames.MeshPickEvent, FlowGraphMeshPickEventBlock);\r\n"]}