[Bf-blender-cvs] [022b541cb32] temp-attribute-processor: node group fixes

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


Commit: 022b541cb32f5a6403b423754da577cdee7c5ddc
Author: Jacques Lucke
Date:   Wed Jun 9 12:44:33 2021 +0200
Branches: temp-attribute-processor
https://developer.blender.org/rB022b541cb32f5a6403b423754da577cdee7c5ddc

node group fixes

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

M	release/scripts/startup/nodeitems_builtins.py
M	source/blender/nodes/function/node_function_util.cc
M	source/blender/nodes/geometry/node_geometry_util.cc
M	source/blender/nodes/geometry/node_geometry_util.hh
M	source/blender/nodes/geometry/nodes/node_attr_group.cc

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

diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index e59dccc5c41..4e85740a16b 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -99,6 +99,7 @@ node_tree_group_type = {
     'ShaderNodeTree': 'ShaderNodeGroup',
     'TextureNodeTree': 'TextureNodeGroup',
     'GeometryNodeTree': 'GeometryNodeGroup',
+    'AttributeNodeTree': 'AttributeNodeGroup',
 }
 
 
@@ -140,8 +141,8 @@ def node_group_items(context):
         if group.name.startswith('.'):
             continue
         yield NodeItem(node_tree_group_type[group.bl_idname],
-                       group.name,
-                       {"node_tree": "bpy.data.node_groups[%r]" % group.name})
+                       label=group.name,
+                       settings={"node_tree": "bpy.data.node_groups[%r]" % group.name})
 
 
 # only show input/output nodes inside node groups
@@ -633,6 +634,7 @@ attribute_node_categories = [
         NodeItem("ShaderNodeVectorMath"),
         NodeItem("ShaderNodeVectorRotate"),
     ]),
+    AttributeNodeCategory("ATTR_GROUP", "Group", items=node_group_items),
     AttributeNodeCategory("ATTR_LAYOUT", "Layout", items=[
         NodeItem("NodeFrame"),
         NodeItem("NodeReroute"),
diff --git a/source/blender/nodes/function/node_function_util.cc b/source/blender/nodes/function/node_function_util.cc
index 7b099e57088..d71c5d25ecd 100644
--- a/source/blender/nodes/function/node_function_util.cc
+++ b/source/blender/nodes/function/node_function_util.cc
@@ -23,7 +23,7 @@ static bool fn_node_poll_default(bNodeType *UNUSED(ntype),
 {
   /* Function nodes are only supported in simulation node trees so far. */
   if (!STREQ(ntree->idname, "GeometryNodeTree") && !STREQ(ntree->idname, "AttributeNodeTree")) {
-    *r_disabled_hint = "Not a geometry node tree";
+    *r_disabled_hint = "Not a geometry or attribute node tree";
     return false;
   }
   return true;
diff --git a/source/blender/nodes/geometry/node_geometry_util.cc b/source/blender/nodes/geometry/node_geometry_util.cc
index 839ee9dd2d4..1d11092d53c 100644
--- a/source/blender/nodes/geometry/node_geometry_util.cc
+++ b/source/blender/nodes/geometry/node_geometry_util.cc
@@ -67,9 +67,9 @@ bool geo_node_poll_default(bNodeType *UNUSED(ntype),
   return true;
 }
 
-static bool attr_node_poll_default(bNodeType *UNUSED(ntype),
-                                   bNodeTree *ntree,
-                                   const char **r_disabled_hint)
+bool attr_node_poll_default(bNodeType *UNUSED(ntype),
+                            bNodeTree *ntree,
+                            const char **r_disabled_hint)
 {
   if (!STREQ(ntree->idname, "AttributeNodeTree")) {
     *r_disabled_hint = "Not a attribute node tree";
diff --git a/source/blender/nodes/geometry/node_geometry_util.hh b/source/blender/nodes/geometry/node_geometry_util.hh
index 9dc94126fa8..07dff8efa1a 100644
--- a/source/blender/nodes/geometry/node_geometry_util.hh
+++ b/source/blender/nodes/geometry/node_geometry_util.hh
@@ -42,6 +42,9 @@ bool geo_node_poll_default(struct bNodeType *ntype,
 
 void attr_node_type_base(
     struct bNodeType *ntype, int type, const char *name, short nclass, short flag);
+bool attr_node_poll_default(struct bNodeType *ntype,
+                            struct bNodeTree *ntree,
+                            const char **r_disabled_hint);
 
 namespace blender::nodes {
 void update_attribute_input_socket_availabilities(bNode &node,
diff --git a/source/blender/nodes/geometry/nodes/node_attr_group.cc b/source/blender/nodes/geometry/nodes/node_attr_group.cc
index 5c5a3c7ae07..368f2da73e2 100644
--- a/source/blender/nodes/geometry/nodes/node_attr_group.cc
+++ b/source/blender/nodes/geometry/nodes/node_attr_group.cc
@@ -28,7 +28,7 @@ void register_node_type_attr_group(void)
 
   node_type_base_custom(&ntype, "AttributeNodeGroup", "Group", NODE_CLASS_GROUP, 0);
   ntype.type = NODE_GROUP;
-  ntype.poll = geo_node_poll_default;
+  ntype.poll = attr_node_poll_default;
   ntype.poll_instance = node_group_poll_instance;
   ntype.insert_link = node_insert_link_default;
   ntype.update_internal_links = node_update_internal_links_default;
@@ -48,7 +48,7 @@ void register_node_type_attribute_custom_group(bNodeType *ntype)
 {
   /* These methods can be overridden but need a default implementation otherwise. */
   if (ntype->poll == nullptr) {
-    ntype->poll = geo_node_poll_default;
+    ntype->poll = attr_node_poll_default;
   }
   if (ntype->insert_link == nullptr) {
     ntype->insert_link = node_insert_link_default;



More information about the Bf-blender-cvs mailing list