[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