Fix: Geometry Nodes: propagate gizmo values through muted nodes

This commit is contained in:
Jacques Lucke
2024-09-30 14:34:46 +02:00
parent 45813afbc0
commit d8319f6f50

View File

@@ -198,6 +198,13 @@ void eval_downstream(
forward_output({context, &node.output_socket(0)});
}
}
else if (node.is_muted()) {
for (const bNodeLink &link : node.internal_links()) {
if (propagate_value_fn({context, link.fromsock}, {context, link.tosock})) {
forward_output({context, link.tosock});
}
}
}
else if (node.is_group()) {
const bNodeTree *group = reinterpret_cast<const bNodeTree *>(node.id);
if (!group) {
@@ -373,6 +380,13 @@ UpstreamEvalTargets eval_upstream(
propagate_value_fn({context, &node.output_socket(0)}, {context, &node.input_socket(0)});
forward_input({context, &node.input_socket(0)});
}
else if (node.is_muted()) {
for (const bNodeLink &link : node.internal_links()) {
if (propagate_value_fn({context, link.tosock}, {context, link.fromsock})) {
forward_input({context, link.fromsock});
}
}
}
else if (node.is_group()) {
/* Once we get here, the nodes within the group have all been evaluated already and the
* inputs of the group node are already set properly by #forward_group_input_to_parent. */