[Bf-blender-cvs] [e294e7a99c3] temp-attribute-processor: fixes

Jacques Lucke noreply at git.blender.org
Wed Jun 9 12:51:22 CEST 2021


Commit: e294e7a99c3a964d55e9d1153f3be7c42155328d
Author: Jacques Lucke
Date:   Wed Jun 9 12:26:29 2021 +0200
Branches: temp-attribute-processor
https://developer.blender.org/rBe294e7a99c3a964d55e9d1153f3be7c42155328d

fixes

===================================================================

M	source/blender/nodes/geometry/nodes/node_attr_set_attribute.cc
M	source/blender/nodes/geometry/nodes/node_geo_attribute_processor.cc

===================================================================

diff --git a/source/blender/nodes/geometry/nodes/node_attr_set_attribute.cc b/source/blender/nodes/geometry/nodes/node_attr_set_attribute.cc
index 9b2c4a12ba7..a5f636ab1d1 100644
--- a/source/blender/nodes/geometry/nodes/node_attr_set_attribute.cc
+++ b/source/blender/nodes/geometry/nodes/node_attr_set_attribute.cc
@@ -54,7 +54,7 @@ void register_node_type_attr_set_attribute()
 {
   static bNodeType ntype;
 
-  attr_node_type_base(&ntype, ATTR_NODE_SET_ATTRIBUTE, "Set Attribute", -1, 0);
+  attr_node_type_base(&ntype, ATTR_NODE_SET_ATTRIBUTE, "Set Attribute", NODE_CLASS_OUTPUT, 0);
   node_type_socket_templates(&ntype, attr_node_set_attribute_in, nullptr);
   node_type_storage(
       &ntype, "NodeAttributeSetAttribute", node_free_standard_storage, node_copy_standard_storage);
diff --git a/source/blender/nodes/geometry/nodes/node_geo_attribute_processor.cc b/source/blender/nodes/geometry/nodes/node_geo_attribute_processor.cc
index 878cffdce4b..ab5f99a7122 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_attribute_processor.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_attribute_processor.cc
@@ -472,7 +472,7 @@ static bool prepare_group_outputs(const Span<DInputSocket> used_group_outputs,
     }
 
     auto attribute = std::make_unique<OutputAttribute>(
-        component.attribute_try_get_for_output_only(attribute_name, domain, attribute_type));
+        component.attribute_try_get_for_output(attribute_name, domain, attribute_type));
     if (!*attribute) {
       /* Cannot create the output attribute. */
       return false;
@@ -566,16 +566,15 @@ static void process_attributes(GeoNodeExecParams &geo_params, GeometrySet &geome
 
   Span<const NodeRef *> output_nodes = root_tree_ref.nodes_by_type("NodeGroupOutput");
 
-  if (output_nodes.size() != 1) {
-    return;
-  }
-  const DNode output_node{&root_context, output_nodes[0]};
-  if (output_node->inputs().size() <= 1) {
+  if (output_nodes.size() >= 2) {
     return;
   }
   Vector<DInputSocket> used_group_outputs;
-  for (const InputSocketRef *socket_ref : output_node->inputs().drop_back(1)) {
-    used_group_outputs.append({&root_context, socket_ref});
+  if (output_nodes.size() == 1) {
+    const DNode output_node{&root_context, output_nodes[0]};
+    for (const InputSocketRef *socket_ref : output_node->inputs().drop_back(1)) {
+      used_group_outputs.append({&root_context, socket_ref});
+    }
   }
   tree.foreach_node_with_type("AttributeNodeSetAttribute", [&](const DNode dnode) {
     NodeAttributeSetAttribute *storage = dnode->storage<NodeAttributeSetAttribute>();



More information about the Bf-blender-cvs mailing list