diff options
author | Hans Goudey <h.goudey@me.com> | 2021-11-16 23:51:03 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-11-16 23:51:03 +0300 |
commit | f30e1fd2f0648d6c88bc61142ecc003ffa33ce11 (patch) | |
tree | b58b1fc849ec90264cb9e6296930f37f4fe3482f /source | |
parent | 25d30e6c99a2d89bf7babfacb24a8c8aa61b3b3b (diff) |
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
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/modifiers/intern/MOD_nodes.cc | 15 |
1 files changed, 9 insertions, 6 deletions
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"); } } |