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.
This commit is contained in:
Hans Goudey 2021-10-27 08:36:59 -05:00
parent c1936be0c5
commit 827d7e7d25
Notes: blender-bot 2023-02-14 08:07:50 +01:00
Referenced by commit 87470169e0, Geometry Nodes: Rename more geometry sockets
6 changed files with 68 additions and 28 deletions

View File

@ -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");
}
}
}
}

View File

@ -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);
}
}
}

View File

@ -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);

View File

@ -42,7 +42,7 @@ namespace blender::nodes {
static void geo_node_point_distribute_points_on_faces_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Geometry>("Mesh").supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Bool>("Selection").default_value(true).hide_value().supports_field();
b.add_input<decl::Float>("Distance Min").min(0.0f).subtype(PROP_DISTANCE);
b.add_input<decl::Float>("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<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("Mesh");
const GeometryNodeDistributePointsOnFacesMode method =
static_cast<GeometryNodeDistributePointsOnFacesMode>(params.node().custom1);

View File

@ -32,7 +32,7 @@ namespace blender::nodes {
static void geo_node_points_to_volume_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_POINT_CLOUD);
b.add_input<decl::Geometry>("Points").supported_type(GEO_COMPONENT_TYPE_POINT_CLOUD);
b.add_input<decl::Float>("Density").default_value(1.0f).min(0.0f);
b.add_input<decl::Float>("Voxel Size").default_value(0.3f).min(0.01f).subtype(PROP_DISTANCE);
b.add_input<decl::Float>("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<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Volume");
}
static void geo_node_points_to_volume_layout(uiLayout *layout,
@ -239,17 +239,17 @@ static void initialize_volume_component_from_points(GeoNodeExecParams &params,
static void geo_node_points_to_volume_exec(GeoNodeExecParams params)
{
GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("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
}

View File

@ -31,7 +31,7 @@ namespace blender::nodes {
static void geo_node_subdivision_surface_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry").supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Geometry>("Mesh").supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Int>("Level").default_value(1).min(0).max(6);
b.add_input<decl::Float>("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<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("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<GeometrySet>("Geometry");
GeometrySet geometry_set = params.extract_input<GeometrySet>("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