New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flow graph control flow nodes - 1 #14327
Flow graph control flow nodes - 1 #14327
Conversation
Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s). |
Yes I was surprised by the lack of context but now it makes total sense. Very close to NGE actually Looks good to me |
Snapshot stored with reference name: Test environment: To test a playground add it to the URL, for example: https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14327/merge/index.html#WGZLGJ#4600 Links to test babylon tools with this snapshot: https://playground.babylonjs.com/?snapshot=refs/pull/14327/merge To test the snapshot in the playground with a playground ID add it after the snapshot query string: https://playground.babylonjs.com/?snapshot=refs/pull/14327/merge#BCU1XR#0 |
packages/dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.ts
Show resolved
Hide resolved
packages/dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.ts
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few general comments:
- Codedoc is missing on different functions and classes
- Reusing objects and avoiding GC should be implemented wherever possible.
Otherwise - looks great!
packages/dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.ts
Outdated
Show resolved
Hide resolved
packages/dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.ts
Show resolved
Hide resolved
packages/dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.ts
Outdated
Show resolved
Hide resolved
packages/dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.ts
Outdated
Show resolved
Hide resolved
packages/dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.ts
Show resolved
Hide resolved
Co-authored-by: Raanan Weber <raananw+github@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are some conflicts to be resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A lot of the public properties/functions do not have code comments.
@sebavan do you mean the |
@sebavan added some more docstrings |
Oh no sorry I mainly mean properties like _functions being internal by conventions are a bit less important knowing they are defined in the base class. |
@sebavan oh that makes sense 😄 thanks for catching them, I added comments to where I found them 😸 |
Visualization tests for webgl1 have failed. If some tests failed because the snapshots do not match, the report can be found at If tests were successful afterwards, this report might not be available anymore. |
Visualization tests for webgl2 have failed. If some tests failed because the snapshots do not match, the report can be found at If tests were successful afterwards, this report might not be available anymore. |
Visualization tests for webgl1 have failed. If some tests failed because the snapshots do not match, the report can be found at If tests were successful afterwards, this report might not be available anymore. |
Visualization tests for webgl2 have failed. If some tests failed because the snapshots do not match, the report can be found at If tests were successful afterwards, this report might not be available anymore. |
Changes
Add the following Control Flow nodes (lifted from: https://docs.google.com/document/d/1MT7gL-IEn_PUw-4XGBazMxsyqsxqgAVGYcNeC4Cj_9Q/edit#heading=h.m04l33f79oe5)
Counter
DoN
MultiGate
Switch
Throttle
WaitAll
WhileLoop
Move some nodes to the Control Flow directory:
ForLoop
Timer
Conditional
To set a value on a FlowGraphDataConnection point, now you need to specify a context. This is because, if we have the same graph running with multiple contexts, the value of a data connection can be different between them. I wasn't differentiating them before, which was an oversight.
When a block executes, it now knows which of its input signals activated the block. This is needed for blocks that have a "reset" input, such as some of the conditional blocks added.
Example PGs