From 8f30c25207c768dda9eefdb61afcfd3770aa0b54 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Mon, 30 Sep 2024 21:28:20 +0200 Subject: [PATCH] Geometry Nodes: add panel for generated geometry on foreach zone The panel makes the separation of the main geometry and generated geometry outputs more obvious. Pull Request: https://projects.blender.org/blender/blender/pulls/128382 --- .../nodes/node_geo_foreach_geometry_element.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/source/blender/nodes/geometry/nodes/node_geo_foreach_geometry_element.cc b/source/blender/nodes/geometry/nodes/node_geo_foreach_geometry_element.cc index c762dd951cc..74cb53e73ca 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_foreach_geometry_element.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_foreach_geometry_element.cc @@ -442,24 +442,26 @@ static void node_declare(NodeDeclarationBuilder &b) } b.add_input("", "__extend__main"); b.add_output("", "__extend__main").align_with_previous(); - b.add_separator(); + + auto &panel = b.add_panel("Generated"); + int previous_geometry_index = -1; for (const int i : IndexRange(storage.generation_items.items_num)) { const NodeForeachGeometryElementGenerationItem &item = storage.generation_items.items[i]; const eNodeSocketDatatype socket_type = eNodeSocketDatatype(item.socket_type); if (socket_type == SOCK_GEOMETRY && i > 0) { - b.add_separator(); + panel.add_separator(); } const StringRef name = item.name ? item.name : ""; std::string identifier = ForeachGeometryElementGenerationItemsAccessor::socket_identifier_for_item(item); - auto &input_decl = b.add_input(socket_type, name, identifier) + auto &input_decl = panel.add_input(socket_type, name, identifier) .socket_name_ptr( &tree->id, ForeachGeometryElementGenerationItemsAccessor::item_srna, &item, "name"); - auto &output_decl = b.add_output(socket_type, name, identifier).align_with_previous(); + auto &output_decl = panel.add_output(socket_type, name, identifier).align_with_previous(); if (socket_type == SOCK_GEOMETRY) { previous_geometry_index = output_decl.index(); aal::PropagateRelation relation; @@ -481,10 +483,9 @@ static void node_declare(NodeDeclarationBuilder &b) output_decl.description("Attribute on the geometry above"); } } + panel.add_input("", "__extend__generation"); + panel.add_output("", "__extend__generation").align_with_previous(); } - - b.add_input("", "__extend__generation"); - b.add_output("", "__extend__generation").align_with_previous(); } static void node_init(bNodeTree * /*tree*/, bNode *node)