[Bf-blender-cvs] [f30e1fd2f06] blender-v3.0-release: Fix T93085: Incorrect geometry nodes modifier warning
Hans Goudey
noreply at git.blender.org
Tue Nov 16 21:54:18 CET 2021
Commit: f30e1fd2f0648d6c88bc61142ecc003ffa33ce11
Author: Hans Goudey
Date: Tue Nov 16 14:51:03 2021 -0600
Branches: blender-v3.0-release
https://developer.blender.org/rBf30e1fd2f0648d6c88bc61142ecc003ffa33ce11
Fix T93085: Incorrect geometry nodes modifier warning
It's valid for a node group connected to the modifier not to
have a geometry input, but I didn't consider that case
with the last change I made here, f3bdabbe24fe591dc9.
Differential Revision: https://developer.blender.org/D13231
===================================================================
M source/blender/modifiers/intern/MOD_nodes.cc
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index 70f6020f5a9..c1cdfa43920 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -1031,11 +1031,9 @@ static void check_property_socket_sync(const Object *ob, ModifierData *md)
int i;
LISTBASE_FOREACH_INDEX (const bNodeSocket *, socket, &nmd->node_group->inputs, i) {
/* The first socket is the special geometry socket for the modifier object. */
- if (i == 0) {
- if (socket->type == SOCK_GEOMETRY) {
- continue;
- }
- BKE_modifier_set_error(ob, md, "The first node group input must be a geometry");
+ if (i == 0 && socket->type == SOCK_GEOMETRY) {
+ geometry_socket_count++;
+ continue;
}
IDProperty *property = IDP_GetPropertyFromGroup(nmd->settings.properties, socket->identifier);
@@ -1056,7 +1054,12 @@ static void check_property_socket_sync(const Object *ob, ModifierData *md)
}
}
- if (geometry_socket_count > 1) {
+ if (geometry_socket_count == 1) {
+ if (((bNodeSocket *)nmd->node_group->inputs.first)->type != SOCK_GEOMETRY) {
+ BKE_modifier_set_error(ob, md, "Node group's geometry input must be the first");
+ }
+ }
+ else if (geometry_socket_count > 1) {
BKE_modifier_set_error(ob, md, "Node group can only have one geometry input");
}
}
More information about the Bf-blender-cvs
mailing list