Blender V5.0
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")
16 .multi_input()
17 .description("Geometries to merge together by concatenating their elements");
18 b.add_output<decl::Geometry>("Geometry").propagate_all().align_with_previous();
19}
20
22{
24 params.extract_input<GeoNodesMultiInput<GeometrySet>>("Geometry");
25
26 const NodeAttributeFilter &attribute_filter = params.get_attribute_filter("Geometry");
27
28 for (GeometrySet &geometry : geometries.values) {
30 }
31
32 GeometrySet geometry_set_result = geometry::join_geometries(geometries.values, attribute_filter);
33
34 params.set_output("Geometry", std::move(geometry_set_result));
35}
36
37static void node_register()
38{
39 static blender::bke::bNodeType ntype;
40
41 geo_node_type_base(&ntype, "GeometryNodeJoinGeometry", GEO_NODE_JOIN_GEOMETRY);
42 ntype.ui_name = "Join Geometry";
43 ntype.ui_description = "Merge separately generated geometries into a single one";
44 ntype.enum_name_legacy = "JOIN_GEOMETRY";
47 ntype.declare = node_declare;
49}
51
52} // namespace blender::nodes::node_geo_join_geometry_cc
#define NODE_CLASS_GEOMETRY
Definition BKE_node.hh:461
#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:2416
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, bool allow_merging_instance_references=true)
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:238
std::string ui_description
Definition BKE_node.hh:244
NodeGeometryExecFunction geometry_node_execute
Definition BKE_node.hh:354
const char * enum_name_legacy
Definition BKE_node.hh:247
NodeDeclareFunction declare
Definition BKE_node.hh:362