@babylonjs/core 6.30.0 → 6.32.0

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 (227) hide show
  1. package/Actions/action.js.map +1 -1
  2. package/Animations/animation.d.ts +8 -2
  3. package/Animations/animation.js +21 -13
  4. package/Animations/animation.js.map +1 -1
  5. package/Animations/runtimeAnimation.js +6 -15
  6. package/Animations/runtimeAnimation.js.map +1 -1
  7. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
  8. package/Cameras/camera.js +1 -1
  9. package/Cameras/camera.js.map +1 -1
  10. package/Culling/ray.js +24 -24
  11. package/Culling/ray.js.map +1 -1
  12. package/Debug/skeletonViewer.d.ts +2 -2
  13. package/Debug/skeletonViewer.js +38 -12
  14. package/Debug/skeletonViewer.js.map +1 -1
  15. package/DeviceInput/InputDevices/deviceSource.js.map +1 -1
  16. package/DeviceInput/InputDevices/deviceTypes.js.map +1 -1
  17. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  18. package/Engines/Extensions/engine.views.d.ts +8 -5
  19. package/Engines/Extensions/engine.views.js +14 -8
  20. package/Engines/Extensions/engine.views.js.map +1 -1
  21. package/Engines/Processors/shaderCodeNode.js.map +1 -1
  22. package/Engines/WebGPU/Extensions/engine.multiRender.js +6 -3
  23. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  24. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  25. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  26. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  27. package/Engines/engine.d.ts +16 -1
  28. package/Engines/engine.js +1 -1
  29. package/Engines/engine.js.map +1 -1
  30. package/Engines/thinEngine.js +2 -2
  31. package/Engines/thinEngine.js.map +1 -1
  32. package/Engines/webgpuEngine.js.map +1 -1
  33. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixBlocks.js +12 -12
  34. package/FlowGraph/Blocks/Data/Math/flowGraphMatrixBlocks.js.map +1 -1
  35. package/FlowGraph/Blocks/Data/Math/flowGraphNumberMathBlocks.js +4 -4
  36. package/FlowGraph/Blocks/Data/Math/flowGraphNumberMathBlocks.js.map +1 -1
  37. package/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.js +9 -9
  38. package/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.js.map +1 -1
  39. package/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.js +11 -11
  40. package/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.js.map +1 -1
  41. package/FlowGraph/Blocks/Data/Math/flowGraphVector4MathBlocks.js +10 -10
  42. package/FlowGraph/Blocks/Data/Math/flowGraphVector4MathBlocks.js.map +1 -1
  43. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js +2 -2
  44. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js.map +1 -1
  45. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +1 -1
  46. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
  47. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js +4 -4
  48. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js.map +1 -1
  49. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js +1 -1
  50. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js.map +1 -1
  51. package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js +4 -4
  52. package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js.map +1 -1
  53. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js +2 -2
  54. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js.map +1 -1
  55. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js +1 -1
  56. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js.map +1 -1
  57. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.d.ts +4 -4
  58. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js +16 -6
  59. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js.map +1 -1
  60. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.d.ts +1 -0
  61. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js +5 -1
  62. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js.map +1 -1
  63. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js +1 -1
  64. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js.map +1 -1
  65. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.d.ts +17 -6
  66. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +16 -9
  67. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
  68. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js +1 -1
  69. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js.map +1 -1
  70. package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js +1 -1
  71. package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js.map +1 -1
  72. package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js +1 -1
  73. package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js.map +1 -1
  74. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js +1 -1
  75. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js.map +1 -1
  76. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js +1 -1
  77. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js.map +1 -1
  78. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js +2 -2
  79. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js.map +1 -1
  80. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js +2 -2
  81. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js.map +1 -1
  82. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js +1 -1
  83. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js.map +1 -1
  84. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js +4 -4
  85. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js.map +1 -1
  86. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.d.ts +1 -0
  87. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js +8 -1
  88. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js.map +1 -1
  89. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.d.ts +1 -0
  90. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js +5 -1
  91. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js.map +1 -1
  92. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js +2 -2
  93. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js.map +1 -1
  94. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js +1 -1
  95. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js.map +1 -1
  96. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.d.ts +1 -0
  97. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js +4 -0
  98. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js.map +1 -1
  99. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.d.ts +1 -0
  100. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js +6 -1
  101. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js.map +1 -1
  102. package/FlowGraph/Blocks/Execution/flowGraphLogBlock.js +1 -1
  103. package/FlowGraph/Blocks/Execution/flowGraphLogBlock.js.map +1 -1
  104. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js +2 -2
  105. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js.map +1 -1
  106. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.d.ts +8 -12
  107. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js +9 -19
  108. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js.map +1 -1
  109. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js +2 -2
  110. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js.map +1 -1
  111. package/FlowGraph/flowGraphBlock.d.ts +2 -2
  112. package/FlowGraph/flowGraphBlock.js +20 -4
  113. package/FlowGraph/flowGraphBlock.js.map +1 -1
  114. package/FlowGraph/flowGraphContext.d.ts +4 -4
  115. package/FlowGraph/flowGraphContext.js +22 -40
  116. package/FlowGraph/flowGraphContext.js.map +1 -1
  117. package/FlowGraph/flowGraphPath.d.ts +27 -0
  118. package/FlowGraph/flowGraphPath.js +136 -0
  119. package/FlowGraph/flowGraphPath.js.map +1 -0
  120. package/FlowGraph/flowGraphPathComponent.d.ts +42 -0
  121. package/FlowGraph/flowGraphPathComponent.js +51 -0
  122. package/FlowGraph/flowGraphPathComponent.js.map +1 -0
  123. package/FlowGraph/index.d.ts +1 -0
  124. package/FlowGraph/index.js +1 -0
  125. package/FlowGraph/index.js.map +1 -1
  126. package/Gizmos/axisDragGizmo.d.ts +4 -2
  127. package/Gizmos/axisDragGizmo.js +18 -6
  128. package/Gizmos/axisDragGizmo.js.map +1 -1
  129. package/Gizmos/axisScaleGizmo.d.ts +2 -2
  130. package/Gizmos/axisScaleGizmo.js +1 -1
  131. package/Gizmos/axisScaleGizmo.js.map +1 -1
  132. package/Gizmos/planeDragGizmo.d.ts +4 -4
  133. package/Gizmos/planeDragGizmo.js +1 -1
  134. package/Gizmos/planeDragGizmo.js.map +1 -1
  135. package/Gizmos/planeRotationGizmo.d.ts +13 -7
  136. package/Gizmos/planeRotationGizmo.js +26 -10
  137. package/Gizmos/planeRotationGizmo.js.map +1 -1
  138. package/Lights/Shadows/shadowGenerator.d.ts +8 -0
  139. package/Lights/Shadows/shadowGenerator.js +12 -0
  140. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  141. package/Loading/sceneLoader.js.map +1 -1
  142. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  143. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  144. package/Materials/Node/Blocks/Teleport/teleportInBlock.d.ts +6 -0
  145. package/Materials/Node/Blocks/Teleport/teleportInBlock.js +22 -0
  146. package/Materials/Node/Blocks/Teleport/teleportInBlock.js.map +1 -1
  147. package/Materials/Node/Blocks/modBlock.js +1 -0
  148. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  149. package/Materials/Textures/Procedurals/proceduralTexture.d.ts +1 -1
  150. package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
  151. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  152. package/Materials/Textures/multiRenderTarget.d.ts +14 -10
  153. package/Materials/Textures/multiRenderTarget.js +7 -5
  154. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  155. package/Materials/imageProcessingConfiguration.d.ts +2 -2
  156. package/Materials/imageProcessingConfiguration.js +2 -2
  157. package/Materials/imageProcessingConfiguration.js.map +1 -1
  158. package/Maths/math.size.d.ts +6 -0
  159. package/Maths/math.size.js +8 -0
  160. package/Maths/math.size.js.map +1 -1
  161. package/Maths/math.vector.d.ts +5 -5
  162. package/Maths/math.vector.js +6 -5
  163. package/Maths/math.vector.js.map +1 -1
  164. package/Meshes/Builders/linesBuilder.js +4 -2
  165. package/Meshes/Builders/linesBuilder.js.map +1 -1
  166. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +1 -1
  167. package/Meshes/GreasedLine/greasedLineBaseMesh.js +1 -1
  168. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  169. package/Meshes/geometry.d.ts +8 -0
  170. package/Meshes/geometry.js +20 -1
  171. package/Meshes/geometry.js.map +1 -1
  172. package/Meshes/groundMesh.js +1 -1
  173. package/Meshes/groundMesh.js.map +1 -1
  174. package/Meshes/mesh.d.ts +8 -0
  175. package/Meshes/mesh.js +14 -2
  176. package/Meshes/mesh.js.map +1 -1
  177. package/Meshes/mesh.vertexData.js.map +1 -1
  178. package/Misc/dds.js.map +1 -1
  179. package/Misc/greasedLineTools.js.map +1 -1
  180. package/Misc/tools.js.map +1 -1
  181. package/Physics/physicsHelper.d.ts +1 -1
  182. package/Physics/physicsHelper.js +1 -1
  183. package/Physics/physicsHelper.js.map +1 -1
  184. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.d.ts +1 -1
  185. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js +1 -1
  186. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js.map +1 -1
  187. package/PostProcesses/bloomEffect.d.ts +1 -1
  188. package/PostProcesses/bloomEffect.js +1 -1
  189. package/PostProcesses/bloomEffect.js.map +1 -1
  190. package/PostProcesses/postProcess.d.ts +10 -2
  191. package/PostProcesses/postProcess.js +17 -7
  192. package/PostProcesses/postProcess.js.map +1 -1
  193. package/Rendering/depthPeelingRenderer.d.ts +5 -0
  194. package/Rendering/depthPeelingRenderer.js +33 -9
  195. package/Rendering/depthPeelingRenderer.js.map +1 -1
  196. package/Rendering/depthRenderer.js +9 -0
  197. package/Rendering/depthRenderer.js.map +1 -1
  198. package/Rendering/geometryBufferRenderer.d.ts +6 -3
  199. package/Rendering/geometryBufferRenderer.js +28 -10
  200. package/Rendering/geometryBufferRenderer.js.map +1 -1
  201. package/Rendering/geometryBufferRendererSceneComponent.d.ts +5 -2
  202. package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
  203. package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
  204. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  205. package/Shaders/depth.vertex.d.ts +2 -0
  206. package/Shaders/depth.vertex.js +4 -0
  207. package/Shaders/depth.vertex.js.map +1 -1
  208. package/XR/features/WebXRAbstractFeature.d.ts +10 -1
  209. package/XR/features/WebXRAbstractFeature.js +13 -0
  210. package/XR/features/WebXRAbstractFeature.js.map +1 -1
  211. package/XR/features/WebXRLightEstimation.d.ts +5 -0
  212. package/XR/features/WebXRLightEstimation.js +14 -2
  213. package/XR/features/WebXRLightEstimation.js.map +1 -1
  214. package/XR/features/WebXRRawCameraAccess.d.ts +81 -0
  215. package/XR/features/WebXRRawCameraAccess.js +169 -0
  216. package/XR/features/WebXRRawCameraAccess.js.map +1 -0
  217. package/XR/features/index.d.ts +1 -0
  218. package/XR/features/index.js +1 -0
  219. package/XR/features/index.js.map +1 -1
  220. package/XR/webXRFeaturesManager.d.ts +13 -0
  221. package/XR/webXRFeaturesManager.js +4 -0
  222. package/XR/webXRFeaturesManager.js.map +1 -1
  223. package/package.json +1 -1
  224. package/scene.d.ts +1 -1
  225. package/scene.js +11 -6
  226. package/scene.js.map +1 -1
  227. package/types.js.map +1 -1
@@ -128,10 +128,10 @@ export class FlowGraphClampMatrixBlock extends FlowGraphBlock {
128
128
  super(config);
129
129
  this._cachedArray = new Float32Array(16);
130
130
  this._cachedMatrix = Matrix.Identity();
131
- this.input = this._registerDataInput("input", RichTypeMatrix);
132
- this.min = this._registerDataInput("min", RichTypeNumber);
133
- this.max = this._registerDataInput("max", RichTypeNumber);
134
- this.output = this._registerDataOutput("output", RichTypeMatrix);
131
+ this.input = this.registerDataInput("input", RichTypeMatrix);
132
+ this.min = this.registerDataInput("min", RichTypeNumber);
133
+ this.max = this.registerDataInput("max", RichTypeNumber);
134
+ this.output = this.registerDataOutput("output", RichTypeMatrix);
135
135
  }
136
136
  _updateOutputs(_context) {
137
137
  const input = this.input.getValue(_context);
@@ -159,10 +159,10 @@ export class FlowGraphDecomposeMatrixBlock extends FlowGraphBlock {
159
159
  this._cachedTranslation = new Vector3();
160
160
  this._cachedRotation = new Quaternion();
161
161
  this._cachedScale = new Vector3();
162
- this.input = this._registerDataInput("input", RichTypeMatrix);
163
- this.translation = this._registerDataOutput("translation", RichTypeVector3);
164
- this.rotation = this._registerDataOutput("rotation", RichTypeQuaternion);
165
- this.scale = this._registerDataOutput("scale", RichTypeVector3);
162
+ this.input = this.registerDataInput("input", RichTypeMatrix);
163
+ this.translation = this.registerDataOutput("translation", RichTypeVector3);
164
+ this.rotation = this.registerDataOutput("rotation", RichTypeQuaternion);
165
+ this.scale = this.registerDataOutput("scale", RichTypeVector3);
166
166
  }
167
167
  _updateOutputs(_context) {
168
168
  const input = this.input.getValue(_context);
@@ -185,10 +185,10 @@ export class FlowGraphComposeMatrixBlock extends FlowGraphBlock {
185
185
  constructor(config) {
186
186
  super(config);
187
187
  this._cachedMatrix = new Matrix();
188
- this.output = this._registerDataOutput("input", RichTypeMatrix);
189
- this.translation = this._registerDataInput("translation", RichTypeVector3);
190
- this.rotation = this._registerDataInput("rotation", RichTypeQuaternion);
191
- this.scale = this._registerDataInput("scale", RichTypeVector3);
188
+ this.output = this.registerDataOutput("input", RichTypeMatrix);
189
+ this.translation = this.registerDataInput("translation", RichTypeVector3);
190
+ this.rotation = this.registerDataInput("rotation", RichTypeQuaternion);
191
+ this.scale = this.registerDataInput("scale", RichTypeVector3);
192
192
  }
193
193
  _updateOutputs(_context) {
194
194
  const translation = this.translation.getValue(_context);
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphMatrixBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphMatrixBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, TmpVectors, Vector3 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { RichTypeAny, RichTypeMatrix, RichTypeNumber, RichTypeQuaternion, RichTypeVector3 } from \"../../../flowGraphRichTypes\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport type { TransformNode } from \"../../../../Meshes/transformNode\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n\r\nconst ADDNAME = \"FGAddMatrixBlock\";\r\n/**\r\n * Adds two matrices together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, Matrix, Matrix> {\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeMatrix, RichTypeMatrix, (left, right) => left.addToRef(right, this._cachedMatrix), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddMatrixBlock);\r\n\r\nconst ADDNUMBERNAME = \"FGAddMatrixAndNumberBlock\";\r\n/**\r\n * Adds a matrix and a number together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddMatrixAndNumberBlock extends FlowGraphBinaryOperationBlock<Matrix, number, Matrix> {\r\n private _cachedArray: Float32Array = new Float32Array(16);\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeMatrix,\r\n RichTypeNumber,\r\n RichTypeMatrix,\r\n (left, right) => {\r\n for (let i = 0; i < left.m.length; i++) {\r\n this._cachedArray[i] = left.m[i] + right;\r\n }\r\n return Matrix.FromArrayToRef(this._cachedArray, 0, this._cachedMatrix);\r\n },\r\n ADDNUMBERNAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(ADDNUMBERNAME, FlowGraphAddMatrixAndNumberBlock);\r\n\r\nconst SUBNAME = \"FGSubtractMatrixBlock\";\r\n/**\r\n * Subtracts two matrices.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, Matrix, Matrix> {\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeMatrix, RichTypeMatrix, (left, right) => left.addToRef(right.scaleToRef(-1, TmpVectors.Matrix[0]), this._cachedMatrix), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractMatrixBlock);\r\n\r\nconst SUBNUMBERNAME = \"FGSubtractMatrixAndNumberBlock\";\r\n/**\r\n * Subtracts a matrix and a number together.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractMatrixAndNumberBlock extends FlowGraphBinaryOperationBlock<Matrix, number, Matrix> {\r\n private _cachedArray: Float32Array = new Float32Array(16);\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeMatrix,\r\n RichTypeNumber,\r\n RichTypeMatrix,\r\n (left, right) => {\r\n for (let i = 0; i < left.m.length; i++) {\r\n this._cachedArray[i] = left.m[i] - right;\r\n }\r\n return Matrix.FromArrayToRef(this._cachedArray, 0, this._cachedMatrix);\r\n },\r\n SUBNUMBERNAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(SUBNUMBERNAME, FlowGraphSubtractMatrixAndNumberBlock);\r\n\r\nconst MULNAME = \"FGMultiplyMatrixBlock\";\r\n/**\r\n * Multiplies two matrices together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, Matrix, Matrix> {\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeMatrix, RichTypeMatrix, (left, right) => left.multiplyToRef(right, this._cachedMatrix), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyMatrixBlock);\r\n\r\nconst DIVIDENAME = \"FGDivideMatrixBlock\";\r\n/**\r\n * Divides two matrices.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, Matrix, Matrix> {\r\n private _cachedResultMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeMatrix,\r\n RichTypeMatrix,\r\n RichTypeMatrix,\r\n (left, right) => left.multiplyToRef(right.invertToRef(TmpVectors.Matrix[0]), this._cachedResultMatrix),\r\n DIVIDENAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(DIVIDENAME, FlowGraphDivideMatrixBlock);\r\n\r\nconst DIVIDENUMBERNAME = \"FGDivideMatrixAndNumberBlock\";\r\n/**\r\n * Divides a matrix and a number together.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideMatrixAndNumberBlock extends FlowGraphBinaryOperationBlock<Matrix, number, Matrix> {\r\n private _cachedArray: Float32Array = new Float32Array(16);\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeMatrix,\r\n RichTypeNumber,\r\n RichTypeMatrix,\r\n (left, right) => {\r\n for (let i = 0; i < left.m.length; i++) {\r\n this._cachedArray[i] = left.m[i] / right;\r\n }\r\n return Matrix.FromArrayToRef(this._cachedArray, 0, this._cachedMatrix);\r\n },\r\n DIVIDENUMBERNAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(DIVIDENUMBERNAME, FlowGraphDivideMatrixAndNumberBlock);\r\n\r\nconst SCALENAME = \"FGScaleMatrixBlock\";\r\n/**\r\n * Scales a matrix by a number.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, number, Matrix> {\r\n private _cachedMatrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeNumber, RichTypeMatrix, (left, right) => left.scaleToRef(right, this._cachedMatrix), SCALENAME, config);\r\n }\r\n}\r\nRegisterClass(SCALENAME, FlowGraphScaleMatrixBlock);\r\n\r\nconst CLAMPNAME = \"FGClampMatrixBlock\";\r\n/**\r\n * Clamps each value in a matrix between a minimum and maximum value.\r\n * @experimental\r\n */\r\nexport class FlowGraphClampMatrixBlock extends FlowGraphBlock {\r\n /**\r\n * Input connection: The matrix to clamp.\r\n */\r\n public readonly input: FlowGraphDataConnection<Matrix>;\r\n /**\r\n * Output connection: The clamped matrix.\r\n */\r\n public readonly output: FlowGraphDataConnection<Matrix>;\r\n /**\r\n * Input connection: The minimum value.\r\n */\r\n public readonly min: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The maximum value.\r\n */\r\n public readonly max: FlowGraphDataConnection<number>;\r\n private _cachedArray: Float32Array = new Float32Array(16);\r\n private _cachedMatrix: Matrix = Matrix.Identity();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.input = this._registerDataInput(\"input\", RichTypeMatrix);\r\n this.min = this._registerDataInput(\"min\", RichTypeNumber);\r\n this.max = this._registerDataInput(\"max\", RichTypeNumber);\r\n this.output = this._registerDataOutput(\"output\", RichTypeMatrix);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const input = this.input.getValue(_context);\r\n const min = this.min.getValue(_context);\r\n const max = this.max.getValue(_context);\r\n\r\n for (let i = 0; i < input.m.length; i++) {\r\n this._cachedArray[i] = Math.min(Math.max(input.m[i], min), max);\r\n }\r\n\r\n Matrix.FromArrayToRef(this._cachedArray, 0, this._cachedMatrix);\r\n this.output.setValue(this._cachedMatrix, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return CLAMPNAME;\r\n }\r\n}\r\nRegisterClass(CLAMPNAME, FlowGraphClampMatrixBlock);\r\n\r\nconst DECOMPOSENAME = \"FGDecomposeMatrixBlock\";\r\n/**\r\n * Decomposes a matrix into its translation, rotation and scale components.\r\n * @experimental\r\n */\r\nexport class FlowGraphDecomposeMatrixBlock extends FlowGraphBlock {\r\n /**\r\n * Input connection: The matrix to decompose.\r\n */\r\n public readonly input: FlowGraphDataConnection<Matrix>;\r\n /**\r\n * Output connection: The translation component of the matrix.\r\n */\r\n public readonly translation: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Output connection: The rotation component of the matrix.\r\n */\r\n public readonly rotation: FlowGraphDataConnection<Quaternion>;\r\n /**\r\n * Output connection: The scale component of the matrix.\r\n */\r\n public readonly scale: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedTranslation = new Vector3();\r\n private _cachedRotation = new Quaternion();\r\n private _cachedScale = new Vector3();\r\n\r\n public constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.input = this._registerDataInput(\"input\", RichTypeMatrix);\r\n this.translation = this._registerDataOutput(\"translation\", RichTypeVector3);\r\n this.rotation = this._registerDataOutput(\"rotation\", RichTypeQuaternion);\r\n this.scale = this._registerDataOutput(\"scale\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const input = this.input.getValue(_context);\r\n\r\n input.decompose(this._cachedScale, this._cachedRotation, this._cachedTranslation);\r\n\r\n this.translation.setValue(this._cachedTranslation, _context);\r\n this.rotation.setValue(this._cachedRotation, _context);\r\n this.scale.setValue(this._cachedScale, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return DECOMPOSENAME;\r\n }\r\n}\r\nRegisterClass(DECOMPOSENAME, FlowGraphDecomposeMatrixBlock);\r\n\r\nconst COMPOSENAME = \"FGComposeMatrixBlock\";\r\n/**\r\n * Composes a matrix from its translation, rotation and scale components.\r\n * @experimental\r\n */\r\nexport class FlowGraphComposeMatrixBlock extends FlowGraphBlock {\r\n /**\r\n * Output connection: The matrix to compose.\r\n */\r\n public readonly output: FlowGraphDataConnection<Matrix>;\r\n /**\r\n * Input connection: The translation component of the matrix.\r\n */\r\n public readonly translation: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The rotation component of the matrix.\r\n */\r\n public readonly rotation: FlowGraphDataConnection<Quaternion>;\r\n /**\r\n * Input connection: The scale component of the matrix.\r\n */\r\n public readonly scale: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedMatrix = new Matrix();\r\n\r\n public constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.output = this._registerDataOutput(\"input\", RichTypeMatrix);\r\n this.translation = this._registerDataInput(\"translation\", RichTypeVector3);\r\n this.rotation = this._registerDataInput(\"rotation\", RichTypeQuaternion);\r\n this.scale = this._registerDataInput(\"scale\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const translation = this.translation.getValue(_context);\r\n const rotation = this.rotation.getValue(_context);\r\n const scale = this.scale.getValue(_context);\r\n\r\n Matrix.ComposeToRef(scale, rotation, translation, this._cachedMatrix);\r\n\r\n this.output.setValue(this._cachedMatrix, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return COMPOSENAME;\r\n }\r\n}\r\nRegisterClass(COMPOSENAME, FlowGraphComposeMatrixBlock);\r\n\r\nconst QUATERNIONTOROTNAME = \"FGQuaternionToRotationMatrixBlock\";\r\n/**\r\n * Converts a quaternion to a rotation matrix.\r\n * @experimental\r\n */\r\nexport class FlowGraphQuaternionToRotationMatrixBlock extends FlowGraphUnaryOperationBlock<Quaternion, Matrix> {\r\n private _cachedMatrix = new Matrix();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeQuaternion, RichTypeMatrix, (value) => Matrix.FromQuaternionToRef(value, this._cachedMatrix), QUATERNIONTOROTNAME, config);\r\n }\r\n}\r\nRegisterClass(QUATERNIONTOROTNAME, FlowGraphQuaternionToRotationMatrixBlock);\r\n\r\nconst GETTRANSFORMNAME = \"FGGetTransformationMatrixBlock\";\r\n/**\r\n * Given the Transform Nodes A and B, gives the matrix required\r\n * to transform coordinates from A's local space to B's local space.\r\n */\r\nexport class FlowGraphGetTransformationMatrixBlock extends FlowGraphBinaryOperationBlock<TransformNode, TransformNode, Matrix> {\r\n private _cachedResult: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeAny,\r\n RichTypeAny,\r\n RichTypeMatrix,\r\n (left: TransformNode, right: TransformNode) => {\r\n const aMatrix = left.getWorldMatrix();\r\n const bMatrix = right.getWorldMatrix();\r\n\r\n const inverseB = bMatrix.invertToRef(TmpVectors.Matrix[0]);\r\n const result = inverseB.multiplyToRef(aMatrix, this._cachedResult);\r\n return result;\r\n },\r\n GETTRANSFORMNAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(GETTRANSFORMNAME, FlowGraphGetTransformationMatrixBlock);\r\n"]}
1
+ {"version":3,"file":"flowGraphMatrixBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphMatrixBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, TmpVectors, Vector3 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { RichTypeAny, RichTypeMatrix, RichTypeNumber, RichTypeQuaternion, RichTypeVector3 } from \"../../../flowGraphRichTypes\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport type { TransformNode } from \"../../../../Meshes/transformNode\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n\r\nconst ADDNAME = \"FGAddMatrixBlock\";\r\n/**\r\n * Adds two matrices together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, Matrix, Matrix> {\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeMatrix, RichTypeMatrix, (left, right) => left.addToRef(right, this._cachedMatrix), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddMatrixBlock);\r\n\r\nconst ADDNUMBERNAME = \"FGAddMatrixAndNumberBlock\";\r\n/**\r\n * Adds a matrix and a number together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddMatrixAndNumberBlock extends FlowGraphBinaryOperationBlock<Matrix, number, Matrix> {\r\n private _cachedArray: Float32Array = new Float32Array(16);\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeMatrix,\r\n RichTypeNumber,\r\n RichTypeMatrix,\r\n (left, right) => {\r\n for (let i = 0; i < left.m.length; i++) {\r\n this._cachedArray[i] = left.m[i] + right;\r\n }\r\n return Matrix.FromArrayToRef(this._cachedArray, 0, this._cachedMatrix);\r\n },\r\n ADDNUMBERNAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(ADDNUMBERNAME, FlowGraphAddMatrixAndNumberBlock);\r\n\r\nconst SUBNAME = \"FGSubtractMatrixBlock\";\r\n/**\r\n * Subtracts two matrices.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, Matrix, Matrix> {\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeMatrix, RichTypeMatrix, (left, right) => left.addToRef(right.scaleToRef(-1, TmpVectors.Matrix[0]), this._cachedMatrix), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractMatrixBlock);\r\n\r\nconst SUBNUMBERNAME = \"FGSubtractMatrixAndNumberBlock\";\r\n/**\r\n * Subtracts a matrix and a number together.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractMatrixAndNumberBlock extends FlowGraphBinaryOperationBlock<Matrix, number, Matrix> {\r\n private _cachedArray: Float32Array = new Float32Array(16);\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeMatrix,\r\n RichTypeNumber,\r\n RichTypeMatrix,\r\n (left, right) => {\r\n for (let i = 0; i < left.m.length; i++) {\r\n this._cachedArray[i] = left.m[i] - right;\r\n }\r\n return Matrix.FromArrayToRef(this._cachedArray, 0, this._cachedMatrix);\r\n },\r\n SUBNUMBERNAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(SUBNUMBERNAME, FlowGraphSubtractMatrixAndNumberBlock);\r\n\r\nconst MULNAME = \"FGMultiplyMatrixBlock\";\r\n/**\r\n * Multiplies two matrices together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, Matrix, Matrix> {\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeMatrix, RichTypeMatrix, (left, right) => left.multiplyToRef(right, this._cachedMatrix), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyMatrixBlock);\r\n\r\nconst DIVIDENAME = \"FGDivideMatrixBlock\";\r\n/**\r\n * Divides two matrices.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, Matrix, Matrix> {\r\n private _cachedResultMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeMatrix,\r\n RichTypeMatrix,\r\n RichTypeMatrix,\r\n (left, right) => left.multiplyToRef(right.invertToRef(TmpVectors.Matrix[0]), this._cachedResultMatrix),\r\n DIVIDENAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(DIVIDENAME, FlowGraphDivideMatrixBlock);\r\n\r\nconst DIVIDENUMBERNAME = \"FGDivideMatrixAndNumberBlock\";\r\n/**\r\n * Divides a matrix and a number together.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideMatrixAndNumberBlock extends FlowGraphBinaryOperationBlock<Matrix, number, Matrix> {\r\n private _cachedArray: Float32Array = new Float32Array(16);\r\n private _cachedMatrix: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeMatrix,\r\n RichTypeNumber,\r\n RichTypeMatrix,\r\n (left, right) => {\r\n for (let i = 0; i < left.m.length; i++) {\r\n this._cachedArray[i] = left.m[i] / right;\r\n }\r\n return Matrix.FromArrayToRef(this._cachedArray, 0, this._cachedMatrix);\r\n },\r\n DIVIDENUMBERNAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(DIVIDENUMBERNAME, FlowGraphDivideMatrixAndNumberBlock);\r\n\r\nconst SCALENAME = \"FGScaleMatrixBlock\";\r\n/**\r\n * Scales a matrix by a number.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleMatrixBlock extends FlowGraphBinaryOperationBlock<Matrix, number, Matrix> {\r\n private _cachedMatrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeNumber, RichTypeMatrix, (left, right) => left.scaleToRef(right, this._cachedMatrix), SCALENAME, config);\r\n }\r\n}\r\nRegisterClass(SCALENAME, FlowGraphScaleMatrixBlock);\r\n\r\nconst CLAMPNAME = \"FGClampMatrixBlock\";\r\n/**\r\n * Clamps each value in a matrix between a minimum and maximum value.\r\n * @experimental\r\n */\r\nexport class FlowGraphClampMatrixBlock extends FlowGraphBlock {\r\n /**\r\n * Input connection: The matrix to clamp.\r\n */\r\n public readonly input: FlowGraphDataConnection<Matrix>;\r\n /**\r\n * Output connection: The clamped matrix.\r\n */\r\n public readonly output: FlowGraphDataConnection<Matrix>;\r\n /**\r\n * Input connection: The minimum value.\r\n */\r\n public readonly min: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The maximum value.\r\n */\r\n public readonly max: FlowGraphDataConnection<number>;\r\n private _cachedArray: Float32Array = new Float32Array(16);\r\n private _cachedMatrix: Matrix = Matrix.Identity();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.input = this.registerDataInput(\"input\", RichTypeMatrix);\r\n this.min = this.registerDataInput(\"min\", RichTypeNumber);\r\n this.max = this.registerDataInput(\"max\", RichTypeNumber);\r\n this.output = this.registerDataOutput(\"output\", RichTypeMatrix);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const input = this.input.getValue(_context);\r\n const min = this.min.getValue(_context);\r\n const max = this.max.getValue(_context);\r\n\r\n for (let i = 0; i < input.m.length; i++) {\r\n this._cachedArray[i] = Math.min(Math.max(input.m[i], min), max);\r\n }\r\n\r\n Matrix.FromArrayToRef(this._cachedArray, 0, this._cachedMatrix);\r\n this.output.setValue(this._cachedMatrix, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return CLAMPNAME;\r\n }\r\n}\r\nRegisterClass(CLAMPNAME, FlowGraphClampMatrixBlock);\r\n\r\nconst DECOMPOSENAME = \"FGDecomposeMatrixBlock\";\r\n/**\r\n * Decomposes a matrix into its translation, rotation and scale components.\r\n * @experimental\r\n */\r\nexport class FlowGraphDecomposeMatrixBlock extends FlowGraphBlock {\r\n /**\r\n * Input connection: The matrix to decompose.\r\n */\r\n public readonly input: FlowGraphDataConnection<Matrix>;\r\n /**\r\n * Output connection: The translation component of the matrix.\r\n */\r\n public readonly translation: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Output connection: The rotation component of the matrix.\r\n */\r\n public readonly rotation: FlowGraphDataConnection<Quaternion>;\r\n /**\r\n * Output connection: The scale component of the matrix.\r\n */\r\n public readonly scale: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedTranslation = new Vector3();\r\n private _cachedRotation = new Quaternion();\r\n private _cachedScale = new Vector3();\r\n\r\n public constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.input = this.registerDataInput(\"input\", RichTypeMatrix);\r\n this.translation = this.registerDataOutput(\"translation\", RichTypeVector3);\r\n this.rotation = this.registerDataOutput(\"rotation\", RichTypeQuaternion);\r\n this.scale = this.registerDataOutput(\"scale\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const input = this.input.getValue(_context);\r\n\r\n input.decompose(this._cachedScale, this._cachedRotation, this._cachedTranslation);\r\n\r\n this.translation.setValue(this._cachedTranslation, _context);\r\n this.rotation.setValue(this._cachedRotation, _context);\r\n this.scale.setValue(this._cachedScale, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return DECOMPOSENAME;\r\n }\r\n}\r\nRegisterClass(DECOMPOSENAME, FlowGraphDecomposeMatrixBlock);\r\n\r\nconst COMPOSENAME = \"FGComposeMatrixBlock\";\r\n/**\r\n * Composes a matrix from its translation, rotation and scale components.\r\n * @experimental\r\n */\r\nexport class FlowGraphComposeMatrixBlock extends FlowGraphBlock {\r\n /**\r\n * Output connection: The matrix to compose.\r\n */\r\n public readonly output: FlowGraphDataConnection<Matrix>;\r\n /**\r\n * Input connection: The translation component of the matrix.\r\n */\r\n public readonly translation: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The rotation component of the matrix.\r\n */\r\n public readonly rotation: FlowGraphDataConnection<Quaternion>;\r\n /**\r\n * Input connection: The scale component of the matrix.\r\n */\r\n public readonly scale: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedMatrix = new Matrix();\r\n\r\n public constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.output = this.registerDataOutput(\"input\", RichTypeMatrix);\r\n this.translation = this.registerDataInput(\"translation\", RichTypeVector3);\r\n this.rotation = this.registerDataInput(\"rotation\", RichTypeQuaternion);\r\n this.scale = this.registerDataInput(\"scale\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const translation = this.translation.getValue(_context);\r\n const rotation = this.rotation.getValue(_context);\r\n const scale = this.scale.getValue(_context);\r\n\r\n Matrix.ComposeToRef(scale, rotation, translation, this._cachedMatrix);\r\n\r\n this.output.setValue(this._cachedMatrix, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return COMPOSENAME;\r\n }\r\n}\r\nRegisterClass(COMPOSENAME, FlowGraphComposeMatrixBlock);\r\n\r\nconst QUATERNIONTOROTNAME = \"FGQuaternionToRotationMatrixBlock\";\r\n/**\r\n * Converts a quaternion to a rotation matrix.\r\n * @experimental\r\n */\r\nexport class FlowGraphQuaternionToRotationMatrixBlock extends FlowGraphUnaryOperationBlock<Quaternion, Matrix> {\r\n private _cachedMatrix = new Matrix();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeQuaternion, RichTypeMatrix, (value) => Matrix.FromQuaternionToRef(value, this._cachedMatrix), QUATERNIONTOROTNAME, config);\r\n }\r\n}\r\nRegisterClass(QUATERNIONTOROTNAME, FlowGraphQuaternionToRotationMatrixBlock);\r\n\r\nconst GETTRANSFORMNAME = \"FGGetTransformationMatrixBlock\";\r\n/**\r\n * Given the Transform Nodes A and B, gives the matrix required\r\n * to transform coordinates from A's local space to B's local space.\r\n */\r\nexport class FlowGraphGetTransformationMatrixBlock extends FlowGraphBinaryOperationBlock<TransformNode, TransformNode, Matrix> {\r\n private _cachedResult: Matrix = Matrix.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeAny,\r\n RichTypeAny,\r\n RichTypeMatrix,\r\n (left: TransformNode, right: TransformNode) => {\r\n const aMatrix = left.getWorldMatrix();\r\n const bMatrix = right.getWorldMatrix();\r\n\r\n const inverseB = bMatrix.invertToRef(TmpVectors.Matrix[0]);\r\n const result = inverseB.multiplyToRef(aMatrix, this._cachedResult);\r\n return result;\r\n },\r\n GETTRANSFORMNAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(GETTRANSFORMNAME, FlowGraphGetTransformationMatrixBlock);\r\n"]}
@@ -409,10 +409,10 @@ const MIXNAME = "FGMixNumberBlock";
409
409
  export class FlowGraphMixNumberBlock extends FlowGraphBlock {
410
410
  constructor(config) {
411
411
  super(config);
412
- this.leftInput = this._registerDataInput("leftInput", RichTypeNumber);
413
- this.rightInput = this._registerDataInput("rightInput", RichTypeNumber);
414
- this.alphaInput = this._registerDataInput("alphaInput", RichTypeNumber);
415
- this.resultOutput = this._registerDataOutput("resultOutput", RichTypeNumber);
412
+ this.leftInput = this.registerDataInput("leftInput", RichTypeNumber);
413
+ this.rightInput = this.registerDataInput("rightInput", RichTypeNumber);
414
+ this.alphaInput = this.registerDataInput("alphaInput", RichTypeNumber);
415
+ this.resultOutput = this.registerDataOutput("resultOutput", RichTypeNumber);
416
416
  }
417
417
  _updateOutputs(_context) {
418
418
  const left = this.leftInput.getValue(_context);
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphNumberMathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphNumberMathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport { RichTypeBoolean, RichTypeNumber } from \"../../../flowGraphRichTypes\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { FlowGraphConstantOperationBlock } from \"../flowGraphConstantOperationBlock\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n/**\r\n * Module for all of the number math blocks.\r\n * @see https://docs.google.com/spreadsheets/d/1wSFUFLPpRFVlL-va3YtYC6sepNvPapVawG1-nzoTF34/edit#gid=0\r\n */\r\n\r\nconst ADDNAME = \"FGAddNumberBlock\";\r\n/**\r\n * Outputs the addition of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left + right, ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddNumberBlock);\r\n\r\nconst SUBNAME = \"FGSubtractNumberBlock\";\r\n/**\r\n * Outputs the subtraction of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left - right, SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractNumberBlock);\r\n\r\nconst MULTIPLYNAME = \"FGMultiplyNumberBlock\";\r\n/**\r\n * Outputs the multiplication of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left * right, MULTIPLYNAME, config);\r\n }\r\n}\r\nRegisterClass(MULTIPLYNAME, FlowGraphMultiplyNumberBlock);\r\n\r\nconst DIVIDENAME = \"FGDivideNumberBlock\";\r\n/**\r\n * Ouputs the division of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left / right, DIVIDENAME, config);\r\n }\r\n}\r\nRegisterClass(DIVIDENAME, FlowGraphDivideNumberBlock);\r\n\r\nconst MODNAME = \"FGModNumberBlock\";\r\n/**\r\n * Outputs the modulo of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphModNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left % right, MODNAME, config);\r\n }\r\n}\r\nRegisterClass(MODNAME, FlowGraphModNumberBlock);\r\n\r\nconst POWNAME = \"FGPowNumberBlock\";\r\n/**\r\n * Outputs left to the power of right.\r\n * @experimental\r\n */\r\nexport class FlowGraphPowNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => Math.pow(left, right), POWNAME, config);\r\n }\r\n}\r\nRegisterClass(POWNAME, FlowGraphPowNumberBlock);\r\n\r\nconst ISNANNAME = \"FGIsNaNNumberBlock\";\r\n/**\r\n * Outputs true if the number is NaN, false otherwise.\r\n * @experimental\r\n */\r\nexport class FlowGraphIsNaNNumberBlock extends FlowGraphUnaryOperationBlock<number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeBoolean, (input) => isNaN(input), ISNANNAME, config);\r\n }\r\n}\r\nRegisterClass(ISNANNAME, FlowGraphIsNaNNumberBlock);\r\n\r\nconst ISINFINITENAME = \"FGIsInfinityNumberBlock\";\r\n/**\r\n * Outputs true if the number is infinite, false otherwise.\r\n * @experimental\r\n */\r\nexport class FlowGraphIsInfinityNumberBlock extends FlowGraphUnaryOperationBlock<number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeBoolean, (input) => !isFinite(input), ISINFINITENAME, config);\r\n }\r\n}\r\nRegisterClass(ISINFINITENAME, FlowGraphIsInfinityNumberBlock);\r\n\r\nconst SQRTNAME = \"FGSqrtNumberBlock\";\r\n/**\r\n * Outputs the square root of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphSqrtNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.sqrt(input), SQRTNAME, config);\r\n }\r\n}\r\nRegisterClass(SQRTNAME, FlowGraphSqrtNumberBlock);\r\n\r\nconst ABSNAME = \"FGAbsNumberBlock\";\r\n/**\r\n * Outputs the absolute value of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphAbsNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.abs(input), ABSNAME, config);\r\n }\r\n}\r\nRegisterClass(ABSNAME, FlowGraphAbsNumberBlock);\r\n\r\nconst NEGNAME = \"FGNegateNumberBlock\";\r\n/**\r\n * Negates the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphNegateNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => -input, NEGNAME, config);\r\n }\r\n}\r\nRegisterClass(NEGNAME, FlowGraphNegateNumberBlock);\r\n\r\nconst FLOORNAME = \"FGFloorNumberBlock\";\r\n/**\r\n * Outputs the floor of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphFloorNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.floor(input), FLOORNAME, config);\r\n }\r\n}\r\n\r\nRegisterClass(FLOORNAME, FlowGraphFloorNumberBlock);\r\n\r\nconst CEILNAME = \"FGCeilNumberBlock\";\r\n/**\r\n * Outputs the ceiling of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphCeilNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.ceil(input), CEILNAME, config);\r\n }\r\n}\r\nRegisterClass(CEILNAME, FlowGraphCeilNumberBlock);\r\n\r\nconst ROUNDNAME = \"FGRoundNumberBlock\";\r\n/**\r\n * Rounds the left input to right digits of precision.\r\n * @see rounding function from: https://docs.google.com/spreadsheets/d/1wSFUFLPpRFVlL-va3YtYC6sepNvPapVawG1-nzoTF34/edit#gid=0\r\n * @experimental\r\n */\r\nexport class FlowGraphRoundNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (input, digits) => Math.round(input / Math.pow(10, digits)) / Math.pow(10, digits), ROUNDNAME, config);\r\n }\r\n}\r\nRegisterClass(ROUNDNAME, FlowGraphRoundNumberBlock);\r\n\r\nconst TRUNCNAME = \"FGTruncNumberBlock\";\r\n/**\r\n * Truncates the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphTruncNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.trunc(input), TRUNCNAME, config);\r\n }\r\n}\r\nRegisterClass(TRUNCNAME, FlowGraphTruncNumberBlock);\r\n\r\nconst EXPNAME = \"FGExpNumberBlock\";\r\n/**\r\n * Outputs the exponential of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphExpNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.exp(input), EXPNAME, config);\r\n }\r\n}\r\nRegisterClass(EXPNAME, FlowGraphExpNumberBlock);\r\n\r\nconst LOG10NAME = \"FGLog10NumberBlock\";\r\n/**\r\n * Outputs the base 10 logarithm of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphLog10NumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.log10(input), LOG10NAME, config);\r\n }\r\n}\r\nRegisterClass(LOG10NAME, FlowGraphLog10NumberBlock);\r\n\r\nconst LOGNAME = \"FGLogNumberBlock\";\r\n/**\r\n * Outputs the natural logarithm of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphLogNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.log(input), LOGNAME, config);\r\n }\r\n}\r\nRegisterClass(LOGNAME, FlowGraphLogNumberBlock);\r\n\r\nconst LNNAME = \"FGLnNumberBlock\";\r\n/**\r\n * Outputs the base 2 logarithm of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphLnNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.log(input) / Math.LN2, LNNAME, config);\r\n }\r\n}\r\nRegisterClass(LNNAME, FlowGraphLnNumberBlock);\r\n\r\nconst SINENAME = \"FGSineNumberBlock\";\r\n/**\r\n * Outputs the sine of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphSinNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.sin(input), SINENAME, config);\r\n }\r\n}\r\nRegisterClass(SINENAME, FlowGraphSinNumberBlock);\r\n\r\nconst COSNAME = \"FGCosNumberBlock\";\r\n/**\r\n * Outputs the cosine of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphCosNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.cos(input), COSNAME, config);\r\n }\r\n}\r\nRegisterClass(COSNAME, FlowGraphCosNumberBlock);\r\n\r\nconst TANNAME = \"FGTanNumberBlock\";\r\n/**\r\n * Outputs the tangent of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphTanNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.tan(input), TANNAME, config);\r\n }\r\n}\r\nRegisterClass(TANNAME, FlowGraphTanNumberBlock);\r\n\r\nconst ASINENAME = \"FGASineNumberBlock\";\r\n/**\r\n * Outputs the arcsine of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphASinNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.asin(input), ASINENAME, config);\r\n }\r\n}\r\nRegisterClass(ASINENAME, FlowGraphASinNumberBlock);\r\n\r\nconst ACOSNAME = \"FGACosNumberBlock\";\r\n/**\r\n * Outputs the arccosine of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphACosNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.acos(input), ACOSNAME, config);\r\n }\r\n}\r\nRegisterClass(ACOSNAME, FlowGraphACosNumberBlock);\r\n\r\nconst ATANNAME = \"FGATanNumberBlock\";\r\n/**\r\n * Outputs the arctangent of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphATanNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.atan(input), ATANNAME, config);\r\n }\r\n}\r\nRegisterClass(ATANNAME, FlowGraphATanNumberBlock);\r\n\r\nconst ENAME = \"FGENumberBlock\";\r\n/**\r\n * Outputs the number E.\r\n * @experimental\r\n */\r\nexport class FlowGraphENumberBlock extends FlowGraphConstantOperationBlock<number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, () => Math.E, ENAME, config);\r\n }\r\n}\r\nRegisterClass(ENAME, FlowGraphENumberBlock);\r\n\r\nconst PINAME = \"FGPiNumberBlock\";\r\n/**\r\n * Outputs the number PI.\r\n * @experimental\r\n */\r\nexport class FlowGraphPiNumberBlock extends FlowGraphConstantOperationBlock<number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, () => Math.PI, PINAME, config);\r\n }\r\n}\r\nRegisterClass(PINAME, FlowGraphPiNumberBlock);\r\n\r\nconst ATAN2NAME = \"FGATan2NumberBlock\";\r\n/**\r\n * Outputs the arctan2 of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphATan2NumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => Math.atan2(left, right), ATAN2NAME, config);\r\n }\r\n}\r\nRegisterClass(ATAN2NAME, FlowGraphATan2NumberBlock);\r\n\r\nconst RNDNAME = \"FGRandomNumberBlock\";\r\n/**\r\n * @experimental\r\n * Outputs a number between left and right.\r\n */\r\nexport class FlowGraphRandomNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left + Math.random() * (right - left), RNDNAME, config);\r\n }\r\n}\r\nRegisterClass(RNDNAME, FlowGraphRandomNumberBlock);\r\n\r\nconst MINNAME = \"FGMinNumberBlock\";\r\n/**\r\n * Outputs the minimum of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphMinNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => Math.min(left, right), MINNAME, config);\r\n }\r\n}\r\nRegisterClass(MINNAME, FlowGraphMinNumberBlock);\r\n\r\nconst MAXNAME = \"FGMaxNumberBlock\";\r\n/**\r\n * Outputs the maximum of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphMaxNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => Math.max(left, right), MAXNAME, config);\r\n }\r\n}\r\nRegisterClass(MAXNAME, FlowGraphMaxNumberBlock);\r\n\r\nconst EQUALSNAME = \"FGEqualsNumberBlock\";\r\n/**\r\n * Outputs true if left is equal to right, false otherwise.\r\n * @experimental\r\n */\r\nexport class FlowGraphEqualsNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left === right, EQUALSNAME, config);\r\n }\r\n}\r\nRegisterClass(EQUALSNAME, FlowGraphEqualsNumberBlock);\r\n\r\nconst GREATERTHANNAME = \"FGGreaterThanNumberBlock\";\r\n/**\r\n * Outputs true if left is greater than right, false otherwise.\r\n */\r\nexport class FlowGraphGreaterThanNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left > right, GREATERTHANNAME, config);\r\n }\r\n}\r\nRegisterClass(GREATERTHANNAME, FlowGraphGreaterThanNumberBlock);\r\n\r\nconst GREATEROREQUALNAME = \"FGGreaterThanOrEqualsNumberBlock\";\r\n/**\r\n * Outputs true if left is greater than or equal to right, false otherwise.\r\n */\r\nexport class FlowGraphGreaterThanOrEqualsNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left >= right, GREATEROREQUALNAME, config);\r\n }\r\n}\r\nRegisterClass(GREATEROREQUALNAME, FlowGraphGreaterThanOrEqualsNumberBlock);\r\n\r\nconst LESSTHANNAME = \"FGLessThanNumberBlock\";\r\n/**\r\n * Outputs true if left is less than right, false otherwise.\r\n */\r\nexport class FlowGraphLessThanNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left < right, LESSTHANNAME, config);\r\n }\r\n}\r\nRegisterClass(LESSTHANNAME, FlowGraphLessThanNumberBlock);\r\n\r\nconst LESSOREQUALNAME = \"FGLessThanOrEqualsNumberBlock\";\r\n/**\r\n * Outputs true if left is less than or equal to right, false otherwise.\r\n */\r\nexport class FlowGraphLessThanOrEqualsNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left <= right, LESSOREQUALNAME, config);\r\n }\r\n}\r\nRegisterClass(LESSOREQUALNAME, FlowGraphLessThanOrEqualsNumberBlock);\r\n\r\nconst MIXNAME = \"FGMixNumberBlock\";\r\n/**\r\n * Outputs a mix of left and right based on alpha.\r\n * @experimental\r\n */\r\nexport class FlowGraphMixNumberBlock extends FlowGraphBlock {\r\n public leftInput: FlowGraphDataConnection<number>;\r\n public rightInput: FlowGraphDataConnection<number>;\r\n public alphaInput: FlowGraphDataConnection<number>;\r\n\r\n public resultOutput: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.leftInput = this._registerDataInput(\"leftInput\", RichTypeNumber);\r\n this.rightInput = this._registerDataInput(\"rightInput\", RichTypeNumber);\r\n this.alphaInput = this._registerDataInput(\"alphaInput\", RichTypeNumber);\r\n this.resultOutput = this._registerDataOutput(\"resultOutput\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const left = this.leftInput.getValue(_context);\r\n const right = this.rightInput.getValue(_context);\r\n const alpha = this.alphaInput.getValue(_context);\r\n const mix = left + (right - left) * alpha;\r\n this.resultOutput.setValue(mix, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return MIXNAME;\r\n }\r\n}\r\nRegisterClass(MIXNAME, FlowGraphMixNumberBlock);\r\n"]}
1
+ {"version":3,"file":"flowGraphNumberMathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphNumberMathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport { RichTypeBoolean, RichTypeNumber } from \"../../../flowGraphRichTypes\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { FlowGraphConstantOperationBlock } from \"../flowGraphConstantOperationBlock\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n/**\r\n * Module for all of the number math blocks.\r\n * @see https://docs.google.com/spreadsheets/d/1wSFUFLPpRFVlL-va3YtYC6sepNvPapVawG1-nzoTF34/edit#gid=0\r\n */\r\n\r\nconst ADDNAME = \"FGAddNumberBlock\";\r\n/**\r\n * Outputs the addition of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left + right, ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddNumberBlock);\r\n\r\nconst SUBNAME = \"FGSubtractNumberBlock\";\r\n/**\r\n * Outputs the subtraction of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left - right, SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractNumberBlock);\r\n\r\nconst MULTIPLYNAME = \"FGMultiplyNumberBlock\";\r\n/**\r\n * Outputs the multiplication of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left * right, MULTIPLYNAME, config);\r\n }\r\n}\r\nRegisterClass(MULTIPLYNAME, FlowGraphMultiplyNumberBlock);\r\n\r\nconst DIVIDENAME = \"FGDivideNumberBlock\";\r\n/**\r\n * Ouputs the division of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left / right, DIVIDENAME, config);\r\n }\r\n}\r\nRegisterClass(DIVIDENAME, FlowGraphDivideNumberBlock);\r\n\r\nconst MODNAME = \"FGModNumberBlock\";\r\n/**\r\n * Outputs the modulo of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphModNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left % right, MODNAME, config);\r\n }\r\n}\r\nRegisterClass(MODNAME, FlowGraphModNumberBlock);\r\n\r\nconst POWNAME = \"FGPowNumberBlock\";\r\n/**\r\n * Outputs left to the power of right.\r\n * @experimental\r\n */\r\nexport class FlowGraphPowNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => Math.pow(left, right), POWNAME, config);\r\n }\r\n}\r\nRegisterClass(POWNAME, FlowGraphPowNumberBlock);\r\n\r\nconst ISNANNAME = \"FGIsNaNNumberBlock\";\r\n/**\r\n * Outputs true if the number is NaN, false otherwise.\r\n * @experimental\r\n */\r\nexport class FlowGraphIsNaNNumberBlock extends FlowGraphUnaryOperationBlock<number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeBoolean, (input) => isNaN(input), ISNANNAME, config);\r\n }\r\n}\r\nRegisterClass(ISNANNAME, FlowGraphIsNaNNumberBlock);\r\n\r\nconst ISINFINITENAME = \"FGIsInfinityNumberBlock\";\r\n/**\r\n * Outputs true if the number is infinite, false otherwise.\r\n * @experimental\r\n */\r\nexport class FlowGraphIsInfinityNumberBlock extends FlowGraphUnaryOperationBlock<number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeBoolean, (input) => !isFinite(input), ISINFINITENAME, config);\r\n }\r\n}\r\nRegisterClass(ISINFINITENAME, FlowGraphIsInfinityNumberBlock);\r\n\r\nconst SQRTNAME = \"FGSqrtNumberBlock\";\r\n/**\r\n * Outputs the square root of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphSqrtNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.sqrt(input), SQRTNAME, config);\r\n }\r\n}\r\nRegisterClass(SQRTNAME, FlowGraphSqrtNumberBlock);\r\n\r\nconst ABSNAME = \"FGAbsNumberBlock\";\r\n/**\r\n * Outputs the absolute value of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphAbsNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.abs(input), ABSNAME, config);\r\n }\r\n}\r\nRegisterClass(ABSNAME, FlowGraphAbsNumberBlock);\r\n\r\nconst NEGNAME = \"FGNegateNumberBlock\";\r\n/**\r\n * Negates the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphNegateNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => -input, NEGNAME, config);\r\n }\r\n}\r\nRegisterClass(NEGNAME, FlowGraphNegateNumberBlock);\r\n\r\nconst FLOORNAME = \"FGFloorNumberBlock\";\r\n/**\r\n * Outputs the floor of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphFloorNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.floor(input), FLOORNAME, config);\r\n }\r\n}\r\n\r\nRegisterClass(FLOORNAME, FlowGraphFloorNumberBlock);\r\n\r\nconst CEILNAME = \"FGCeilNumberBlock\";\r\n/**\r\n * Outputs the ceiling of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphCeilNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.ceil(input), CEILNAME, config);\r\n }\r\n}\r\nRegisterClass(CEILNAME, FlowGraphCeilNumberBlock);\r\n\r\nconst ROUNDNAME = \"FGRoundNumberBlock\";\r\n/**\r\n * Rounds the left input to right digits of precision.\r\n * @see rounding function from: https://docs.google.com/spreadsheets/d/1wSFUFLPpRFVlL-va3YtYC6sepNvPapVawG1-nzoTF34/edit#gid=0\r\n * @experimental\r\n */\r\nexport class FlowGraphRoundNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (input, digits) => Math.round(input / Math.pow(10, digits)) / Math.pow(10, digits), ROUNDNAME, config);\r\n }\r\n}\r\nRegisterClass(ROUNDNAME, FlowGraphRoundNumberBlock);\r\n\r\nconst TRUNCNAME = \"FGTruncNumberBlock\";\r\n/**\r\n * Truncates the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphTruncNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.trunc(input), TRUNCNAME, config);\r\n }\r\n}\r\nRegisterClass(TRUNCNAME, FlowGraphTruncNumberBlock);\r\n\r\nconst EXPNAME = \"FGExpNumberBlock\";\r\n/**\r\n * Outputs the exponential of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphExpNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.exp(input), EXPNAME, config);\r\n }\r\n}\r\nRegisterClass(EXPNAME, FlowGraphExpNumberBlock);\r\n\r\nconst LOG10NAME = \"FGLog10NumberBlock\";\r\n/**\r\n * Outputs the base 10 logarithm of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphLog10NumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.log10(input), LOG10NAME, config);\r\n }\r\n}\r\nRegisterClass(LOG10NAME, FlowGraphLog10NumberBlock);\r\n\r\nconst LOGNAME = \"FGLogNumberBlock\";\r\n/**\r\n * Outputs the natural logarithm of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphLogNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.log(input), LOGNAME, config);\r\n }\r\n}\r\nRegisterClass(LOGNAME, FlowGraphLogNumberBlock);\r\n\r\nconst LNNAME = \"FGLnNumberBlock\";\r\n/**\r\n * Outputs the base 2 logarithm of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphLnNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.log(input) / Math.LN2, LNNAME, config);\r\n }\r\n}\r\nRegisterClass(LNNAME, FlowGraphLnNumberBlock);\r\n\r\nconst SINENAME = \"FGSineNumberBlock\";\r\n/**\r\n * Outputs the sine of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphSinNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.sin(input), SINENAME, config);\r\n }\r\n}\r\nRegisterClass(SINENAME, FlowGraphSinNumberBlock);\r\n\r\nconst COSNAME = \"FGCosNumberBlock\";\r\n/**\r\n * Outputs the cosine of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphCosNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.cos(input), COSNAME, config);\r\n }\r\n}\r\nRegisterClass(COSNAME, FlowGraphCosNumberBlock);\r\n\r\nconst TANNAME = \"FGTanNumberBlock\";\r\n/**\r\n * Outputs the tangent of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphTanNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.tan(input), TANNAME, config);\r\n }\r\n}\r\nRegisterClass(TANNAME, FlowGraphTanNumberBlock);\r\n\r\nconst ASINENAME = \"FGASineNumberBlock\";\r\n/**\r\n * Outputs the arcsine of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphASinNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.asin(input), ASINENAME, config);\r\n }\r\n}\r\nRegisterClass(ASINENAME, FlowGraphASinNumberBlock);\r\n\r\nconst ACOSNAME = \"FGACosNumberBlock\";\r\n/**\r\n * Outputs the arccosine of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphACosNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.acos(input), ACOSNAME, config);\r\n }\r\n}\r\nRegisterClass(ACOSNAME, FlowGraphACosNumberBlock);\r\n\r\nconst ATANNAME = \"FGATanNumberBlock\";\r\n/**\r\n * Outputs the arctangent of the input.\r\n * @experimental\r\n */\r\nexport class FlowGraphATanNumberBlock extends FlowGraphUnaryOperationBlock<number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, (input) => Math.atan(input), ATANNAME, config);\r\n }\r\n}\r\nRegisterClass(ATANNAME, FlowGraphATanNumberBlock);\r\n\r\nconst ENAME = \"FGENumberBlock\";\r\n/**\r\n * Outputs the number E.\r\n * @experimental\r\n */\r\nexport class FlowGraphENumberBlock extends FlowGraphConstantOperationBlock<number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, () => Math.E, ENAME, config);\r\n }\r\n}\r\nRegisterClass(ENAME, FlowGraphENumberBlock);\r\n\r\nconst PINAME = \"FGPiNumberBlock\";\r\n/**\r\n * Outputs the number PI.\r\n * @experimental\r\n */\r\nexport class FlowGraphPiNumberBlock extends FlowGraphConstantOperationBlock<number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, () => Math.PI, PINAME, config);\r\n }\r\n}\r\nRegisterClass(PINAME, FlowGraphPiNumberBlock);\r\n\r\nconst ATAN2NAME = \"FGATan2NumberBlock\";\r\n/**\r\n * Outputs the arctan2 of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphATan2NumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => Math.atan2(left, right), ATAN2NAME, config);\r\n }\r\n}\r\nRegisterClass(ATAN2NAME, FlowGraphATan2NumberBlock);\r\n\r\nconst RNDNAME = \"FGRandomNumberBlock\";\r\n/**\r\n * @experimental\r\n * Outputs a number between left and right.\r\n */\r\nexport class FlowGraphRandomNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => left + Math.random() * (right - left), RNDNAME, config);\r\n }\r\n}\r\nRegisterClass(RNDNAME, FlowGraphRandomNumberBlock);\r\n\r\nconst MINNAME = \"FGMinNumberBlock\";\r\n/**\r\n * Outputs the minimum of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphMinNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => Math.min(left, right), MINNAME, config);\r\n }\r\n}\r\nRegisterClass(MINNAME, FlowGraphMinNumberBlock);\r\n\r\nconst MAXNAME = \"FGMaxNumberBlock\";\r\n/**\r\n * Outputs the maximum of the left and right inputs.\r\n * @experimental\r\n */\r\nexport class FlowGraphMaxNumberBlock extends FlowGraphBinaryOperationBlock<number, number, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeNumber, (left, right) => Math.max(left, right), MAXNAME, config);\r\n }\r\n}\r\nRegisterClass(MAXNAME, FlowGraphMaxNumberBlock);\r\n\r\nconst EQUALSNAME = \"FGEqualsNumberBlock\";\r\n/**\r\n * Outputs true if left is equal to right, false otherwise.\r\n * @experimental\r\n */\r\nexport class FlowGraphEqualsNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left === right, EQUALSNAME, config);\r\n }\r\n}\r\nRegisterClass(EQUALSNAME, FlowGraphEqualsNumberBlock);\r\n\r\nconst GREATERTHANNAME = \"FGGreaterThanNumberBlock\";\r\n/**\r\n * Outputs true if left is greater than right, false otherwise.\r\n */\r\nexport class FlowGraphGreaterThanNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left > right, GREATERTHANNAME, config);\r\n }\r\n}\r\nRegisterClass(GREATERTHANNAME, FlowGraphGreaterThanNumberBlock);\r\n\r\nconst GREATEROREQUALNAME = \"FGGreaterThanOrEqualsNumberBlock\";\r\n/**\r\n * Outputs true if left is greater than or equal to right, false otherwise.\r\n */\r\nexport class FlowGraphGreaterThanOrEqualsNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left >= right, GREATEROREQUALNAME, config);\r\n }\r\n}\r\nRegisterClass(GREATEROREQUALNAME, FlowGraphGreaterThanOrEqualsNumberBlock);\r\n\r\nconst LESSTHANNAME = \"FGLessThanNumberBlock\";\r\n/**\r\n * Outputs true if left is less than right, false otherwise.\r\n */\r\nexport class FlowGraphLessThanNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left < right, LESSTHANNAME, config);\r\n }\r\n}\r\nRegisterClass(LESSTHANNAME, FlowGraphLessThanNumberBlock);\r\n\r\nconst LESSOREQUALNAME = \"FGLessThanOrEqualsNumberBlock\";\r\n/**\r\n * Outputs true if left is less than or equal to right, false otherwise.\r\n */\r\nexport class FlowGraphLessThanOrEqualsNumberBlock extends FlowGraphBinaryOperationBlock<number, number, boolean> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeNumber, RichTypeNumber, RichTypeBoolean, (left, right) => left <= right, LESSOREQUALNAME, config);\r\n }\r\n}\r\nRegisterClass(LESSOREQUALNAME, FlowGraphLessThanOrEqualsNumberBlock);\r\n\r\nconst MIXNAME = \"FGMixNumberBlock\";\r\n/**\r\n * Outputs a mix of left and right based on alpha.\r\n * @experimental\r\n */\r\nexport class FlowGraphMixNumberBlock extends FlowGraphBlock {\r\n public leftInput: FlowGraphDataConnection<number>;\r\n public rightInput: FlowGraphDataConnection<number>;\r\n public alphaInput: FlowGraphDataConnection<number>;\r\n\r\n public resultOutput: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.leftInput = this.registerDataInput(\"leftInput\", RichTypeNumber);\r\n this.rightInput = this.registerDataInput(\"rightInput\", RichTypeNumber);\r\n this.alphaInput = this.registerDataInput(\"alphaInput\", RichTypeNumber);\r\n this.resultOutput = this.registerDataOutput(\"resultOutput\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const left = this.leftInput.getValue(_context);\r\n const right = this.rightInput.getValue(_context);\r\n const alpha = this.alphaInput.getValue(_context);\r\n const mix = left + (right - left) * alpha;\r\n this.resultOutput.setValue(mix, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return MIXNAME;\r\n }\r\n}\r\nRegisterClass(MIXNAME, FlowGraphMixNumberBlock);\r\n"]}
@@ -93,9 +93,9 @@ export class FlowGraphCreateVector2Block extends FlowGraphBlock {
93
93
  constructor(config) {
94
94
  super(config);
95
95
  this._cachedVector = Vector2.Zero();
96
- this.x = this._registerDataInput("x", RichTypeNumber);
97
- this.y = this._registerDataInput("y", RichTypeNumber);
98
- this.vector = this._registerDataOutput("vector", RichTypeVector2);
96
+ this.x = this.registerDataInput("x", RichTypeNumber);
97
+ this.y = this.registerDataInput("y", RichTypeNumber);
98
+ this.vector = this.registerDataOutput("vector", RichTypeVector2);
99
99
  }
100
100
  _updateOutputs(_context) {
101
101
  this._cachedVector.x = this.x.getValue(_context);
@@ -111,9 +111,9 @@ const SPLITNAME = "FGSplitVector2Block";
111
111
  export class FlowGraphSplitVector2Block extends FlowGraphBlock {
112
112
  constructor(config) {
113
113
  super(config);
114
- this.vector = this._registerDataInput("vector", RichTypeVector2);
115
- this.x = this._registerDataOutput("x", RichTypeNumber);
116
- this.y = this._registerDataOutput("y", RichTypeNumber);
114
+ this.vector = this.registerDataInput("vector", RichTypeVector2);
115
+ this.x = this.registerDataOutput("x", RichTypeNumber);
116
+ this.y = this.registerDataOutput("y", RichTypeNumber);
117
117
  }
118
118
  _updateOutputs(_context) {
119
119
  const vector = this.vector.getValue(_context);
@@ -130,9 +130,9 @@ export class FlowGraphRotate2dVector2Block extends FlowGraphBlock {
130
130
  constructor(config) {
131
131
  super(config);
132
132
  this._cachedVector = Vector2.Zero();
133
- this.input = this._registerDataInput("input", RichTypeVector2);
134
- this.angle = this._registerDataInput("angle", RichTypeNumber);
135
- this.output = this._registerDataOutput("output", RichTypeVector2);
133
+ this.input = this.registerDataInput("input", RichTypeVector2);
134
+ this.angle = this.registerDataInput("angle", RichTypeNumber);
135
+ this.output = this.registerDataOutput("output", RichTypeVector2);
136
136
  }
137
137
  _updateOutputs(_context) {
138
138
  const input = this.input.getValue(_context);
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphVector2MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeNumber, RichTypeVector2 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { Vector2 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\n\r\nconst ADDNAME = \"FGAddVector2Block\";\r\n/**\r\n * Adds two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector2Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector2Block\";\r\n/**\r\n * Subtracts two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector2Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector2Block\";\r\n/**\r\n * Multiplies two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector2Block);\r\n\r\nconst DIVNAME = \"FGDivideVector2Block\";\r\n/**\r\n * Divides two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector2Block);\r\n\r\nconst SCALENAME = \"FGScaleVector2Block\";\r\n/**\r\n * Scales a vector by a given factor.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector2Block extends FlowGraphBinaryOperationBlock<Vector2, number, Vector2> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeNumber, RichTypeVector2, (left, right) => left.scale(right), SCALENAME, config);\r\n }\r\n}\r\nRegisterClass(SCALENAME, FlowGraphScaleVector2Block);\r\n\r\nconst LENNAME = \"FGLengthVector2Block\";\r\n/**\r\n * Gets the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector2Block extends FlowGraphUnaryOperationBlock<Vector2, number> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeNumber, (value) => value.length(), LENNAME, config);\r\n }\r\n}\r\nRegisterClass(LENNAME, FlowGraphLengthVector2Block);\r\n\r\nconst NORMALIZENAME = \"FGNormalizeVector2Block\";\r\n/**\r\n * Normalizes a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector2Block extends FlowGraphUnaryOperationBlock<Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeVector2,\r\n RichTypeVector2,\r\n (value: Vector2) => {\r\n const copy: Vector2 = value.clone();\r\n copy.normalize();\r\n return copy;\r\n },\r\n NORMALIZENAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(NORMALIZENAME, FlowGraphNormalizeVector2Block);\r\n\r\nconst CREATENAME = \"FGCreateVector2Block\";\r\n/**\r\n * Creates a vector from two components.\r\n */\r\nexport class FlowGraphCreateVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector2>;\r\n\r\n private _cachedVector: Vector2 = Vector2.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this._registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.vector = this._registerDataOutput(\"vector\", RichTypeVector2);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector2Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector2Block\";\r\n/**\r\n * Split a vector into its components.\r\n */\r\nexport class FlowGraphSplitVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector2>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this._registerDataInput(\"vector\", RichTypeVector2);\r\n this.x = this._registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataOutput(\"y\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector2Block);\r\n\r\nconst ROTATENAME = \"FGRotate2dVector2Block\";\r\n/**\r\n * Rotates a vector by a given angle.\r\n */\r\nexport class FlowGraphRotate2dVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to rotate.\r\n */\r\n public readonly input: FlowGraphDataConnection<Vector2>;\r\n /**\r\n * Input connection: The angle to rotate by.\r\n */\r\n public readonly angle: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The rotated vector.\r\n */\r\n public readonly output: FlowGraphDataConnection<Vector2>;\r\n\r\n private _cachedVector: Vector2 = Vector2.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.input = this._registerDataInput(\"input\", RichTypeVector2);\r\n this.angle = this._registerDataInput(\"angle\", RichTypeNumber);\r\n this.output = this._registerDataOutput(\"output\", RichTypeVector2);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const input = this.input.getValue(_context);\r\n const angle = this.angle.getValue(_context);\r\n this._cachedVector.x = input.x * Math.cos(angle) - input.y * Math.sin(angle);\r\n this._cachedVector.y = input.x * Math.sin(angle) + input.y * Math.cos(angle);\r\n this.output.setValue(this._cachedVector, _context);\r\n }\r\n}\r\nRegisterClass(ROTATENAME, FlowGraphRotate2dVector2Block);\r\n"]}
1
+ {"version":3,"file":"flowGraphVector2MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeNumber, RichTypeVector2 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { Vector2 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\n\r\nconst ADDNAME = \"FGAddVector2Block\";\r\n/**\r\n * Adds two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector2Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector2Block\";\r\n/**\r\n * Subtracts two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector2Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector2Block\";\r\n/**\r\n * Multiplies two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector2Block);\r\n\r\nconst DIVNAME = \"FGDivideVector2Block\";\r\n/**\r\n * Divides two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector2Block extends FlowGraphBinaryOperationBlock<Vector2, Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeVector2, RichTypeVector2, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector2Block);\r\n\r\nconst SCALENAME = \"FGScaleVector2Block\";\r\n/**\r\n * Scales a vector by a given factor.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector2Block extends FlowGraphBinaryOperationBlock<Vector2, number, Vector2> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeNumber, RichTypeVector2, (left, right) => left.scale(right), SCALENAME, config);\r\n }\r\n}\r\nRegisterClass(SCALENAME, FlowGraphScaleVector2Block);\r\n\r\nconst LENNAME = \"FGLengthVector2Block\";\r\n/**\r\n * Gets the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector2Block extends FlowGraphUnaryOperationBlock<Vector2, number> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector2, RichTypeNumber, (value) => value.length(), LENNAME, config);\r\n }\r\n}\r\nRegisterClass(LENNAME, FlowGraphLengthVector2Block);\r\n\r\nconst NORMALIZENAME = \"FGNormalizeVector2Block\";\r\n/**\r\n * Normalizes a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector2Block extends FlowGraphUnaryOperationBlock<Vector2, Vector2> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(\r\n RichTypeVector2,\r\n RichTypeVector2,\r\n (value: Vector2) => {\r\n const copy: Vector2 = value.clone();\r\n copy.normalize();\r\n return copy;\r\n },\r\n NORMALIZENAME,\r\n config\r\n );\r\n }\r\n}\r\nRegisterClass(NORMALIZENAME, FlowGraphNormalizeVector2Block);\r\n\r\nconst CREATENAME = \"FGCreateVector2Block\";\r\n/**\r\n * Creates a vector from two components.\r\n */\r\nexport class FlowGraphCreateVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector2>;\r\n\r\n private _cachedVector: Vector2 = Vector2.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this.registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this.registerDataInput(\"y\", RichTypeNumber);\r\n this.vector = this.registerDataOutput(\"vector\", RichTypeVector2);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector2Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector2Block\";\r\n/**\r\n * Split a vector into its components.\r\n */\r\nexport class FlowGraphSplitVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector2>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this.registerDataInput(\"vector\", RichTypeVector2);\r\n this.x = this.registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this.registerDataOutput(\"y\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector2Block);\r\n\r\nconst ROTATENAME = \"FGRotate2dVector2Block\";\r\n/**\r\n * Rotates a vector by a given angle.\r\n */\r\nexport class FlowGraphRotate2dVector2Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to rotate.\r\n */\r\n public readonly input: FlowGraphDataConnection<Vector2>;\r\n /**\r\n * Input connection: The angle to rotate by.\r\n */\r\n public readonly angle: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The rotated vector.\r\n */\r\n public readonly output: FlowGraphDataConnection<Vector2>;\r\n\r\n private _cachedVector: Vector2 = Vector2.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.input = this.registerDataInput(\"input\", RichTypeVector2);\r\n this.angle = this.registerDataInput(\"angle\", RichTypeNumber);\r\n this.output = this.registerDataOutput(\"output\", RichTypeVector2);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const input = this.input.getValue(_context);\r\n const angle = this.angle.getValue(_context);\r\n this._cachedVector.x = input.x * Math.cos(angle) - input.y * Math.sin(angle);\r\n this._cachedVector.y = input.x * Math.sin(angle) + input.y * Math.cos(angle);\r\n this.output.setValue(this._cachedVector, _context);\r\n }\r\n}\r\nRegisterClass(ROTATENAME, FlowGraphRotate2dVector2Block);\r\n"]}
@@ -112,10 +112,10 @@ export class FlowGraphCreateVector3Block extends FlowGraphBlock {
112
112
  constructor(config) {
113
113
  super(config);
114
114
  this._cachedVector = Vector3.Zero();
115
- this.x = this._registerDataInput("x", RichTypeNumber);
116
- this.y = this._registerDataInput("y", RichTypeNumber);
117
- this.z = this._registerDataInput("y", RichTypeNumber);
118
- this.vector = this._registerDataOutput("vector", RichTypeVector3);
115
+ this.x = this.registerDataInput("x", RichTypeNumber);
116
+ this.y = this.registerDataInput("y", RichTypeNumber);
117
+ this.z = this.registerDataInput("y", RichTypeNumber);
118
+ this.vector = this.registerDataOutput("vector", RichTypeVector3);
119
119
  }
120
120
  _updateOutputs(_context) {
121
121
  this._cachedVector.x = this.x.getValue(_context);
@@ -136,10 +136,10 @@ const SPLITNAME = "FGSplitVector3Block";
136
136
  export class FlowGraphSplitVector3Block extends FlowGraphBlock {
137
137
  constructor(config) {
138
138
  super(config);
139
- this.vector = this._registerDataInput("vector", RichTypeVector3);
140
- this.x = this._registerDataOutput("x", RichTypeNumber);
141
- this.y = this._registerDataOutput("y", RichTypeNumber);
142
- this.z = this._registerDataOutput("z", RichTypeNumber);
139
+ this.vector = this.registerDataInput("vector", RichTypeVector3);
140
+ this.x = this.registerDataOutput("x", RichTypeNumber);
141
+ this.y = this.registerDataOutput("y", RichTypeNumber);
142
+ this.z = this.registerDataOutput("z", RichTypeNumber);
143
143
  }
144
144
  _updateOutputs(_context) {
145
145
  const vector = this.vector.getValue(_context);
@@ -160,9 +160,9 @@ export class FlowGraphRotate3dVector3Block extends FlowGraphBlock {
160
160
  constructor(config) {
161
161
  super(config);
162
162
  this._cachedQuaternion = new Quaternion();
163
- this.input = this._registerDataInput("input", RichTypeVector3);
164
- this.angle = this._registerDataInput("angle", RichTypeNumber);
165
- this.output = this._registerDataOutput("output", RichTypeVector3);
163
+ this.input = this.registerDataInput("input", RichTypeVector3);
164
+ this.angle = this.registerDataInput("angle", RichTypeNumber);
165
+ this.output = this.registerDataOutput("output", RichTypeVector3);
166
166
  }
167
167
  _updateOutputs(_context) {
168
168
  const rot = Quaternion.RotationAxisToRef(this.axis.getValue(_context), this.angle.getValue(_context), this._cachedQuaternion);
@@ -1 +1 @@
1
- {"version":3,"file":"flowGraphVector3MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeMatrix, RichTypeNumber, RichTypeVector3 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport type { Matrix } from \"../../../../Maths/math.vector\";\r\nimport { Quaternion, Vector3 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\n\r\nconst ADDNAME = \"FGAddVector3Block\";\r\n/**\r\n * Add two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector3Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector3Block\";\r\n/**\r\n * Subtract two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector3Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector3Block\";\r\n/**\r\n * Multiply two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector3Block);\r\n\r\nconst DIVNAME = \"FGDivideVector3Block\";\r\n/**\r\n * Divide two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector3Block);\r\n\r\nconst SCALNAME = \"FGScaleVector3Block\";\r\n/**\r\n * Scale a vector by a number.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector3Block extends FlowGraphBinaryOperationBlock<Vector3, number, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeNumber, RichTypeVector3, (left, right) => left.scale(right), SCALNAME, config);\r\n }\r\n}\r\nRegisterClass(SCALNAME, FlowGraphScaleVector3Block);\r\n\r\nconst LENNAME = \"FGLengthVector3Block\";\r\n/**\r\n * Get the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector3Block extends FlowGraphUnaryOperationBlock<Vector3, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeNumber, (value) => value.length(), LENNAME, config);\r\n }\r\n}\r\nRegisterClass(LENNAME, FlowGraphLengthVector3Block);\r\n\r\nconst NORMNAME = \"FGNormalizeVector3Block\";\r\n/**\r\n * Normalize a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector3Block extends FlowGraphUnaryOperationBlock<Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, (value) => value.normalizeToNew(), NORMNAME, config);\r\n }\r\n}\r\nRegisterClass(NORMNAME, FlowGraphNormalizeVector3Block);\r\n\r\nconst DOTNAME = \"FGDotVector3Block\";\r\n/**\r\n * Get the dot product of two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDotVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeNumber, (left, right) => Vector3.Dot(left, right), DOTNAME, config);\r\n }\r\n}\r\nRegisterClass(DOTNAME, FlowGraphDotVector3Block);\r\n\r\nconst CROSSNAME = \"FGCrossVector3Block\";\r\n/**\r\n * Get the cross product of two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphCrossVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => Vector3.Cross(left, right), CROSSNAME, config);\r\n }\r\n}\r\nRegisterClass(CROSSNAME, FlowGraphCrossVector3Block);\r\n\r\nconst CREATENAME = \"FGCreateVector3Block\";\r\n/**\r\n * Create a vector from its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphCreateVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedVector: Vector3 = Vector3.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this._registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataInput(\"y\", RichTypeNumber);\r\n this.vector = this._registerDataOutput(\"vector\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this._cachedVector.z = this.z.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return CREATENAME;\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector3Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector3Block\";\r\n/**\r\n * Split a vector into its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphSplitVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this._registerDataInput(\"vector\", RichTypeVector3);\r\n this.x = this._registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this._registerDataOutput(\"y\", RichTypeNumber);\r\n this.z = this._registerDataOutput(\"z\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n this.z.setValue(vector.z, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return SPLITNAME;\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector3Block);\r\n\r\nconst ROTATENAME = \"FGRotateVector3Block\";\r\n/**\r\n * Rotates a vector by a given angle.\r\n */\r\nexport class FlowGraphRotate3dVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to rotate.\r\n */\r\n public readonly input: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The axis to rotate around.\r\n */\r\n public readonly axis: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The angle to rotate by.\r\n */\r\n public readonly angle: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The rotated vector.\r\n */\r\n public readonly output: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedQuaternion = new Quaternion();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.input = this._registerDataInput(\"input\", RichTypeVector3);\r\n this.angle = this._registerDataInput(\"angle\", RichTypeNumber);\r\n this.output = this._registerDataOutput(\"output\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const rot = Quaternion.RotationAxisToRef(this.axis.getValue(_context), this.angle.getValue(_context), this._cachedQuaternion);\r\n const input = this.input.getValue(_context);\r\n const output = this.output.getValue(_context);\r\n input.applyRotationQuaternionToRef(rot, output);\r\n }\r\n\r\n public getClassName(): string {\r\n return ROTATENAME;\r\n }\r\n}\r\nRegisterClass(ROTATENAME, FlowGraphRotate3dVector3Block);\r\n\r\nconst TRANSFORMNAME = \"FGTransformVector3Block\";\r\n/**\r\n * Transforms a vector by a given matrix.\r\n * @experimental\r\n */\r\nexport class FlowGraphTransformVector3Block extends FlowGraphBinaryOperationBlock<Matrix, Vector3, Vector3> {\r\n private _cachedResult: Vector3 = Vector3.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeVector3, RichTypeVector3, (left, right) => Vector3.TransformCoordinatesToRef(right, left, this._cachedResult), TRANSFORMNAME, config);\r\n }\r\n}\r\nRegisterClass(TRANSFORMNAME, FlowGraphTransformVector3Block);\r\n"]}
1
+ {"version":3,"file":"flowGraphVector3MathBlocks.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.ts"],"names":[],"mappings":"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","sourcesContent":["import { RichTypeMatrix, RichTypeNumber, RichTypeVector3 } from \"core/FlowGraph/flowGraphRichTypes\";\r\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock\";\r\nimport type { Matrix } from \"../../../../Maths/math.vector\";\r\nimport { Quaternion, Vector3 } from \"../../../../Maths/math.vector\";\r\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlock } from \"../../../flowGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\n\r\nconst ADDNAME = \"FGAddVector3Block\";\r\n/**\r\n * Add two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphAddVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.add(right), ADDNAME, config);\r\n }\r\n}\r\nRegisterClass(ADDNAME, FlowGraphAddVector3Block);\r\n\r\nconst SUBNAME = \"FGSubtractVector3Block\";\r\n/**\r\n * Subtract two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphSubtractVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.subtract(right), SUBNAME, config);\r\n }\r\n}\r\nRegisterClass(SUBNAME, FlowGraphSubtractVector3Block);\r\n\r\nconst MULNAME = \"FGMultiplyVector3Block\";\r\n/**\r\n * Multiply two vectors together.\r\n * @experimental\r\n */\r\nexport class FlowGraphMultiplyVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.multiply(right), MULNAME, config);\r\n }\r\n}\r\nRegisterClass(MULNAME, FlowGraphMultiplyVector3Block);\r\n\r\nconst DIVNAME = \"FGDivideVector3Block\";\r\n/**\r\n * Divide two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDivideVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => left.divide(right), DIVNAME, config);\r\n }\r\n}\r\nRegisterClass(DIVNAME, FlowGraphDivideVector3Block);\r\n\r\nconst SCALNAME = \"FGScaleVector3Block\";\r\n/**\r\n * Scale a vector by a number.\r\n * @experimental\r\n */\r\nexport class FlowGraphScaleVector3Block extends FlowGraphBinaryOperationBlock<Vector3, number, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeNumber, RichTypeVector3, (left, right) => left.scale(right), SCALNAME, config);\r\n }\r\n}\r\nRegisterClass(SCALNAME, FlowGraphScaleVector3Block);\r\n\r\nconst LENNAME = \"FGLengthVector3Block\";\r\n/**\r\n * Get the length of a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphLengthVector3Block extends FlowGraphUnaryOperationBlock<Vector3, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeNumber, (value) => value.length(), LENNAME, config);\r\n }\r\n}\r\nRegisterClass(LENNAME, FlowGraphLengthVector3Block);\r\n\r\nconst NORMNAME = \"FGNormalizeVector3Block\";\r\n/**\r\n * Normalize a vector.\r\n * @experimental\r\n */\r\nexport class FlowGraphNormalizeVector3Block extends FlowGraphUnaryOperationBlock<Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, (value) => value.normalizeToNew(), NORMNAME, config);\r\n }\r\n}\r\nRegisterClass(NORMNAME, FlowGraphNormalizeVector3Block);\r\n\r\nconst DOTNAME = \"FGDotVector3Block\";\r\n/**\r\n * Get the dot product of two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphDotVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, number> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeNumber, (left, right) => Vector3.Dot(left, right), DOTNAME, config);\r\n }\r\n}\r\nRegisterClass(DOTNAME, FlowGraphDotVector3Block);\r\n\r\nconst CROSSNAME = \"FGCrossVector3Block\";\r\n/**\r\n * Get the cross product of two vectors.\r\n * @experimental\r\n */\r\nexport class FlowGraphCrossVector3Block extends FlowGraphBinaryOperationBlock<Vector3, Vector3, Vector3> {\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeVector3, RichTypeVector3, RichTypeVector3, (left, right) => Vector3.Cross(left, right), CROSSNAME, config);\r\n }\r\n}\r\nRegisterClass(CROSSNAME, FlowGraphCrossVector3Block);\r\n\r\nconst CREATENAME = \"FGCreateVector3Block\";\r\n/**\r\n * Create a vector from its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphCreateVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The created vector.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedVector: Vector3 = Vector3.Zero();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.x = this.registerDataInput(\"x\", RichTypeNumber);\r\n this.y = this.registerDataInput(\"y\", RichTypeNumber);\r\n this.z = this.registerDataInput(\"y\", RichTypeNumber);\r\n this.vector = this.registerDataOutput(\"vector\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n this._cachedVector.x = this.x.getValue(_context);\r\n this._cachedVector.y = this.y.getValue(_context);\r\n this._cachedVector.z = this.z.getValue(_context);\r\n this.vector.setValue(this._cachedVector, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return CREATENAME;\r\n }\r\n}\r\nRegisterClass(CREATENAME, FlowGraphCreateVector3Block);\r\n\r\nconst SPLITNAME = \"FGSplitVector3Block\";\r\n/**\r\n * Split a vector into its components.\r\n * @experimental\r\n */\r\nexport class FlowGraphSplitVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to split.\r\n */\r\n public readonly vector: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Output connection: The x component of the vector.\r\n */\r\n public readonly x: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The y component of the vector.\r\n */\r\n public readonly y: FlowGraphDataConnection<number>;\r\n /**\r\n * Input connection: The z component of the vector.\r\n */\r\n public readonly z: FlowGraphDataConnection<number>;\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n\r\n this.vector = this.registerDataInput(\"vector\", RichTypeVector3);\r\n this.x = this.registerDataOutput(\"x\", RichTypeNumber);\r\n this.y = this.registerDataOutput(\"y\", RichTypeNumber);\r\n this.z = this.registerDataOutput(\"z\", RichTypeNumber);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const vector = this.vector.getValue(_context);\r\n this.x.setValue(vector.x, _context);\r\n this.y.setValue(vector.y, _context);\r\n this.z.setValue(vector.z, _context);\r\n }\r\n\r\n public getClassName(): string {\r\n return SPLITNAME;\r\n }\r\n}\r\nRegisterClass(SPLITNAME, FlowGraphSplitVector3Block);\r\n\r\nconst ROTATENAME = \"FGRotateVector3Block\";\r\n/**\r\n * Rotates a vector by a given angle.\r\n */\r\nexport class FlowGraphRotate3dVector3Block extends FlowGraphBlock {\r\n /**\r\n * Input connection: The vector to rotate.\r\n */\r\n public readonly input: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The axis to rotate around.\r\n */\r\n public readonly axis: FlowGraphDataConnection<Vector3>;\r\n /**\r\n * Input connection: The angle to rotate by.\r\n */\r\n public readonly angle: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The rotated vector.\r\n */\r\n public readonly output: FlowGraphDataConnection<Vector3>;\r\n\r\n private _cachedQuaternion = new Quaternion();\r\n\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(config);\r\n this.input = this.registerDataInput(\"input\", RichTypeVector3);\r\n this.angle = this.registerDataInput(\"angle\", RichTypeNumber);\r\n this.output = this.registerDataOutput(\"output\", RichTypeVector3);\r\n }\r\n\r\n public _updateOutputs(_context: FlowGraphContext): void {\r\n const rot = Quaternion.RotationAxisToRef(this.axis.getValue(_context), this.angle.getValue(_context), this._cachedQuaternion);\r\n const input = this.input.getValue(_context);\r\n const output = this.output.getValue(_context);\r\n input.applyRotationQuaternionToRef(rot, output);\r\n }\r\n\r\n public getClassName(): string {\r\n return ROTATENAME;\r\n }\r\n}\r\nRegisterClass(ROTATENAME, FlowGraphRotate3dVector3Block);\r\n\r\nconst TRANSFORMNAME = \"FGTransformVector3Block\";\r\n/**\r\n * Transforms a vector by a given matrix.\r\n * @experimental\r\n */\r\nexport class FlowGraphTransformVector3Block extends FlowGraphBinaryOperationBlock<Matrix, Vector3, Vector3> {\r\n private _cachedResult: Vector3 = Vector3.Zero();\r\n constructor(config?: IFlowGraphBlockConfiguration) {\r\n super(RichTypeMatrix, RichTypeVector3, RichTypeVector3, (left, right) => Vector3.TransformCoordinatesToRef(right, left, this._cachedResult), TRANSFORMNAME, config);\r\n }\r\n}\r\nRegisterClass(TRANSFORMNAME, FlowGraphTransformVector3Block);\r\n"]}
@@ -97,11 +97,11 @@ export class FlowGraphCreateVector4Block extends FlowGraphBlock {
97
97
  constructor(config) {
98
98
  super(config);
99
99
  this._cachedVector = Vector4.Zero();
100
- this.x = this._registerDataInput("x", RichTypeNumber);
101
- this.y = this._registerDataInput("y", RichTypeNumber);
102
- this.z = this._registerDataInput("y", RichTypeNumber);
103
- this.w = this._registerDataInput("w", RichTypeNumber);
104
- this.vector = this._registerDataOutput("vector", RichTypeVector4);
100
+ this.x = this.registerDataInput("x", RichTypeNumber);
101
+ this.y = this.registerDataInput("y", RichTypeNumber);
102
+ this.z = this.registerDataInput("y", RichTypeNumber);
103
+ this.w = this.registerDataInput("w", RichTypeNumber);
104
+ this.vector = this.registerDataOutput("vector", RichTypeVector4);
105
105
  }
106
106
  _updateOutputs(_context) {
107
107
  this._cachedVector.x = this.x.getValue(_context);
@@ -123,11 +123,11 @@ const SPLITNAME = "FGSplitVector4Block";
123
123
  export class FlowGraphSplitVector4Block extends FlowGraphBlock {
124
124
  constructor(config) {
125
125
  super(config);
126
- this.vector = this._registerDataInput("vector", RichTypeVector4);
127
- this.x = this._registerDataOutput("x", RichTypeNumber);
128
- this.y = this._registerDataOutput("y", RichTypeNumber);
129
- this.z = this._registerDataOutput("z", RichTypeNumber);
130
- this.w = this._registerDataOutput("w", RichTypeNumber);
126
+ this.vector = this.registerDataInput("vector", RichTypeVector4);
127
+ this.x = this.registerDataOutput("x", RichTypeNumber);
128
+ this.y = this.registerDataOutput("y", RichTypeNumber);
129
+ this.z = this.registerDataOutput("z", RichTypeNumber);
130
+ this.w = this.registerDataOutput("w", RichTypeNumber);
131
131
  }
132
132
  _updateOutputs(_context) {
133
133
  const vector = this.vector.getValue(_context);