From 827d7e7d252d488a4e267d3b84d49f4deeb654ec Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Wed, 27 Oct 2021 08:36:59 -0500 Subject: Geometry Nodes: Rename some sockets Subdivision surface: Both geometry sockets renamed to "Mesh" Points to Volume: Use "Points" and "Volume" names Distribute Points on Faces: Use "Mesh" input name These are meant to provide a hint to users which type each node is meant to use. --- source/blender/blenloader/intern/versioning_300.c | 10 ++++ .../blender/blenloader/intern/versioning_common.cc | 54 +++++++++++++++------- .../blender/blenloader/intern/versioning_common.h | 8 ++++ .../nodes/node_geo_distribute_points_on_faces.cc | 4 +- .../geometry/nodes/node_geo_points_to_volume.cc | 10 ++-- .../geometry/nodes/node_geo_subdivision_surface.cc | 10 ++-- 6 files changed, 68 insertions(+), 28 deletions(-) (limited to 'source') diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c index d0d6c1471b7..6ab3e24cb2b 100644 --- a/source/blender/blenloader/intern/versioning_300.c +++ b/source/blender/blenloader/intern/versioning_300.c @@ -2118,5 +2118,15 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain) } } } + + LISTBASE_FOREACH (bNodeTree *, ntree, &bmain->nodetrees) { + if (ntree->type == NTREE_GEOMETRY) { + version_node_input_socket_name( + ntree, GEO_NODE_DISTRIBUTE_POINTS_ON_FACES, "Geometry", "Mesh"); + version_node_input_socket_name(ntree, GEO_NODE_POINTS_TO_VOLUME, "Geometry", "Points"); + version_node_output_socket_name(ntree, GEO_NODE_POINTS_TO_VOLUME, "Geometry", "Volume"); + version_node_socket_name(ntree, GEO_NODE_SUBDIVISION_SURFACE, "Geometry", "Mesh"); + } + } } } diff --git a/source/blender/blenloader/intern/versioning_common.cc b/source/blender/blenloader/intern/versioning_common.cc index 6c4996ba9b2..ecc944defba 100644 --- a/source/blender/blenloader/intern/versioning_common.cc +++ b/source/blender/blenloader/intern/versioning_common.cc @@ -87,6 +87,18 @@ ID *do_versions_rename_id(Main *bmain, return id; } +static void change_node_socket_name(ListBase *sockets, const char *old_name, const char *new_name) +{ + LISTBASE_FOREACH (bNodeSocket *, socket, sockets) { + if (STREQ(socket->name, old_name)) { + BLI_strncpy(socket->name, new_name, sizeof(socket->name)); + } + if (STREQ(socket->identifier, old_name)) { + BLI_strncpy(socket->identifier, new_name, sizeof(socket->name)); + } + } +} + void version_node_socket_name(bNodeTree *ntree, const int node_type, const char *old_name, @@ -94,22 +106,32 @@ void version_node_socket_name(bNodeTree *ntree, { LISTBASE_FOREACH (bNode *, node, &ntree->nodes) { if (node->type == node_type) { - LISTBASE_FOREACH (bNodeSocket *, socket, &node->inputs) { - if (STREQ(socket->name, old_name)) { - BLI_strncpy(socket->name, new_name, sizeof(socket->name)); - } - if (STREQ(socket->identifier, old_name)) { - BLI_strncpy(socket->identifier, new_name, sizeof(socket->name)); - } - } - LISTBASE_FOREACH (bNodeSocket *, socket, &node->outputs) { - if (STREQ(socket->name, old_name)) { - BLI_strncpy(socket->name, new_name, sizeof(socket->name)); - } - if (STREQ(socket->identifier, old_name)) { - BLI_strncpy(socket->identifier, new_name, sizeof(socket->name)); - } - } + change_node_socket_name(&node->inputs, old_name, new_name); + change_node_socket_name(&node->outputs, old_name, new_name); + } + } +} + +void version_node_input_socket_name(bNodeTree *ntree, + const int node_type, + const char *old_name, + const char *new_name) +{ + LISTBASE_FOREACH (bNode *, node, &ntree->nodes) { + if (node->type == node_type) { + change_node_socket_name(&node->inputs, old_name, new_name); + } + } +} + +void version_node_output_socket_name(bNodeTree *ntree, + const int node_type, + const char *old_name, + const char *new_name) +{ + LISTBASE_FOREACH (bNode *, node, &ntree->nodes) { + if (node->type == node_type) { + change_node_socket_name(&node->outputs, old_name, new_name); } } } diff --git a/source/blender/blenloader/intern/versioning_common.h b/source/blender/blenloader/intern/versioning_common.h index 1826182be21..8697e8e2639 100644 --- a/source/blender/blenloader/intern/versioning_common.h +++ b/source/blender/blenloader/intern/versioning_common.h @@ -43,6 +43,14 @@ void version_node_socket_name(struct bNodeTree *ntree, const int node_type, const char *old_name, const char *new_name); +void version_node_input_socket_name(struct bNodeTree *ntree, + const int node_type, + const char *old_name, + const char *new_name); +void version_node_output_socket_name(struct bNodeTree *ntree, + const int node_type, + const char *old_name, + const char *new_name); void version_node_id(struct bNodeTree *ntree, const int node_type, const char *new_name); diff --git a/source/blender/nodes/geometry/nodes/node_geo_distribute_points_on_faces.cc b/source/blender/nodes/geometry/nodes/node_geo_distribute_points_on_faces.cc index 58393aea158..21e6004347e 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_distribute_points_on_faces.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_distribute_points_on_faces.cc @@ -42,7 +42,7 @@ namespace blender::nodes { static void geo_node_point_distribute_points_on_faces_declare(NodeDeclarationBuilder &b) { - b.add_input("Geometry").supported_type(GEO_COMPONENT_TYPE_MESH); + b.add_input("Mesh").supported_type(GEO_COMPONENT_TYPE_MESH); b.add_input("Selection").default_value(true).hide_value().supports_field(); b.add_input("Distance Min").min(0.0f).subtype(PROP_DISTANCE); b.add_input("Density Max").default_value(10.0f).min(0.0f); @@ -533,7 +533,7 @@ static void point_distribution_calculate(GeometrySet &geometry_set, static void geo_node_point_distribute_points_on_faces_exec(GeoNodeExecParams params) { - GeometrySet geometry_set = params.extract_input("Geometry"); + GeometrySet geometry_set = params.extract_input("Mesh"); const GeometryNodeDistributePointsOnFacesMode method = static_cast(params.node().custom1); diff --git a/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc b/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc index 26001551fdf..6f68be439b3 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc @@ -32,7 +32,7 @@ namespace blender::nodes { static void geo_node_points_to_volume_declare(NodeDeclarationBuilder &b) { - b.add_input("Geometry").supported_type(GEO_COMPONENT_TYPE_POINT_CLOUD); + b.add_input("Points").supported_type(GEO_COMPONENT_TYPE_POINT_CLOUD); b.add_input("Density").default_value(1.0f).min(0.0f); b.add_input("Voxel Size").default_value(0.3f).min(0.01f).subtype(PROP_DISTANCE); b.add_input("Voxel Amount").default_value(64.0f).min(0.0f); @@ -41,7 +41,7 @@ static void geo_node_points_to_volume_declare(NodeDeclarationBuilder &b) .min(0.0f) .subtype(PROP_DISTANCE) .supports_field(); - b.add_output("Geometry"); + b.add_output("Volume"); } static void geo_node_points_to_volume_layout(uiLayout *layout, @@ -239,17 +239,17 @@ static void initialize_volume_component_from_points(GeoNodeExecParams ¶ms, static void geo_node_points_to_volume_exec(GeoNodeExecParams params) { - GeometrySet geometry_set = params.extract_input("Geometry"); + GeometrySet geometry_set = params.extract_input("Points"); #ifdef WITH_OPENVDB geometry_set.modify_geometry_sets([&](GeometrySet &geometry_set) { initialize_volume_component_from_points(params, geometry_set); }); - params.set_output("Geometry", std::move(geometry_set)); + params.set_output("Volume", std::move(geometry_set)); #else params.error_message_add(NodeWarningType::Error, TIP_("Disabled, Blender was compiled without OpenVDB")); - params.set_output("Geometry", GeometrySet()); + params.set_output("Volume", GeometrySet()); #endif } diff --git a/source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc b/source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc index c82b09e6b38..22bfe2a2bc7 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc @@ -31,7 +31,7 @@ namespace blender::nodes { static void geo_node_subdivision_surface_declare(NodeDeclarationBuilder &b) { - b.add_input("Geometry").supported_type(GEO_COMPONENT_TYPE_MESH); + b.add_input("Mesh").supported_type(GEO_COMPONENT_TYPE_MESH); b.add_input("Level").default_value(1).min(0).max(6); b.add_input("Crease") .default_value(0.0f) @@ -39,7 +39,7 @@ static void geo_node_subdivision_surface_declare(NodeDeclarationBuilder &b) .max(1.0f) .supports_field() .subtype(PROP_FACTOR); - b.add_output("Geometry"); + b.add_output("Mesh"); } static void geo_node_subdivision_surface_layout(uiLayout *layout, @@ -67,7 +67,7 @@ static void geo_node_subdivision_surface_init(bNodeTree *UNUSED(ntree), bNode *n static void geo_node_subdivision_surface_exec(GeoNodeExecParams params) { - GeometrySet geometry_set = params.extract_input("Geometry"); + GeometrySet geometry_set = params.extract_input("Mesh"); #ifndef WITH_OPENSUBDIV params.error_message_add(NodeWarningType::Error, TIP_("Disabled, Blender was compiled without OpenSubdiv")); @@ -82,7 +82,7 @@ static void geo_node_subdivision_surface_exec(GeoNodeExecParams params) /* Only process subdivision if level is greater than 0. */ if (subdiv_level == 0) { - params.set_output("Geometry", std::move(geometry_set)); + params.set_output("Mesh", std::move(geometry_set)); return; } @@ -148,7 +148,7 @@ static void geo_node_subdivision_surface_exec(GeoNodeExecParams params) BKE_subdiv_free(subdiv); }); #endif - params.set_output("Geometry", std::move(geometry_set)); + params.set_output("Mesh", std::move(geometry_set)); } } // namespace blender::nodes -- cgit v1.2.3