Add Compare & Conditional node #2866
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds 2 new nodes: Compare and Conditional.
Compare is a simple node that takes 2 numbers and returns either ==, !=, <, <=, >, >=. The result of this node will be a boolean. This is currently the only node that can produce boolean values that can be connected other nodes.
Condition is the node equivalent of
return a if cond else b
. The node only evaluates the input that is actually returned, so we don't perform unnecessary computation. This is done with lazy inputs added in #2808. Pass through is supported by passing through the "If true" value.Other changes:
BoolOutput
for returning boolean values.has_handle: bool
parameter toBoolInput
. This currently switches between the old enum/dropdown based implementation and a new generic-input based implemented. We should improve this in the future, but it works for now.bool
type.Fixes #2671
Not that this does not solve the issue #148. #148 describes a more general branching implementation that is more powerful than the one implemented here.