Blender V4.5
node_geo_join_geometry.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
6
8
10
12{
13 b.use_custom_socket_order();
14 b.allow_any_socket_order();
15 b.add_input<decl::Geometry>("Geometry").multi_input();
16 b.add_output<decl::Geometry>("Geometry").propagate_all().align_with_previous();
17}
18
20{
21 Vector<GeometrySet> geometry_sets = params.extract_input<Vector<GeometrySet>>("Geometry");
22
23 const NodeAttributeFilter &attribute_filter = params.get_attribute_filter("Geometry");
24
25 for (GeometrySet &geometry : geometry_sets) {
27 }
28
29 GeometrySet geometry_set_result = geometry::join_geometries(geometry_sets, attribute_filter);
30
31 params.set_output("Geometry", std::move(geometry_set_result));
32}
33
34static void node_register()
35{
36 static blender::bke::bNodeType ntype;
37
38 geo_node_type_base(&ntype, "GeometryNodeJoinGeometry", GEO_NODE_JOIN_GEOMETRY);
39 ntype.ui_name = "Join Geometry";
40 ntype.ui_description = "Merge separately generated geometries into a single one";
41 ntype.enum_name_legacy = "JOIN_GEOMETRY";
44 ntype.declare = node_declare;
46}
48
49} // namespace blender::nodes::node_geo_join_geometry_cc
#define NODE_CLASS_GEOMETRY
Definition BKE_node.hh:447
#define GEO_NODE_JOIN_GEOMETRY
#define NOD_REGISTER_NODE(REGISTER_FUNC)
static void remember_deformed_positions_if_necessary(GeometrySet &geometry)
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
void node_register_type(bNodeType &ntype)
Definition node.cc:2748
bke::GeometrySet join_geometries(Span< bke::GeometrySet > geometries, const bke::AttributeFilter &attribute_filter, const std::optional< Span< bke::GeometryComponent::Type > > &component_types_to_join=std::nullopt)
static void node_geo_exec(GeoNodeExecParams params)
static void node_declare(NodeDeclarationBuilder &b)
void geo_node_type_base(blender::bke::bNodeType *ntype, std::string idname, const std::optional< int16_t > legacy_type)
Defines a node type.
Definition BKE_node.hh:226
std::string ui_description
Definition BKE_node.hh:232
NodeGeometryExecFunction geometry_node_execute
Definition BKE_node.hh:347
const char * enum_name_legacy
Definition BKE_node.hh:235
NodeDeclareFunction declare
Definition BKE_node.hh:355