[Bf-blender-cvs] [1ddd7178036] geometry-nodes: Geometry Nodes: Improve error messages for property mismatches

Hans Goudey noreply at git.blender.org
Fri Nov 13 18:35:29 CET 2020


Commit: 1ddd71780365796efde9c08b0aa08990d2d004a4
Author: Hans Goudey
Date:   Fri Nov 13 12:35:10 2020 -0500
Branches: geometry-nodes
https://developer.blender.org/rB1ddd71780365796efde9c08b0aa08990d2d004a4

Geometry Nodes: Improve error messages for property mismatches

Related to T82438. This adds some basic checks for common errors and
currently unsupported socket types in the modifier.

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

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 ddbd6da1eaf..93d1c60f1ba 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -789,24 +789,33 @@ static void check_property_socket_sync(const Object *ob, ModifierData *md)
 
     IDProperty *property = IDP_GetPropertyFromGroup(nmd->settings.properties, socket->identifier);
     if (property == nullptr) {
-      BKE_modifier_set_error(ob,
-                             md,
-                             "Missing property for input socket \"%s\" (\"%s\") ",
-                             socket->name,
-                             socket->identifier);
+      if (socket->type == SOCK_STRING) {
+        BKE_modifier_set_error(ob, md, "String sockets cannot be exposed in the modifier");
+      }
+      else if (socket->type == SOCK_OBJECT) {
+        BKE_modifier_set_error(ob, md, "Object sockets cannot be exposed in the modifier");
+      }
+      else if (socket->type == SOCK_GEOMETRY) {
+        BKE_modifier_set_error(ob, md, "The node group can only have one geometry input");
+      }
+      else {
+        BKE_modifier_set_error(
+            ob, md, "Missing modifier property for input socket \"%s\"", socket->name);
+      }
       continue;
     }
 
     const SocketPropertyType *property_type = get_socket_property_type(*socket);
     if (!property_type->is_correct_type(*property)) {
-      BKE_modifier_set_error(ob,
-                             md,
-                             "Property type does not match for input socket \"%s\" (\"%s\") ",
-                             socket->name,
-                             socket->identifier);
+      BKE_modifier_set_error(
+          ob, md, "Property type does not match for input socket \"(%s)\"", socket->name);
       continue;
     }
   }
+
+  if (!BLI_listbase_is_single(&nmd->node_group->outputs)) {
+    BKE_modifier_set_error(ob, md, "The node group must have a single geometry output");
+  }
 }
 
 static GeometrySetPtr modifyGeometry(ModifierData *md,



More information about the Bf-blender-cvs mailing list