[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