Blender V4.3
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.add_input<decl::Geometry>("Geometry").multi_input();
14 b.add_output<decl::Geometry>("Geometry").propagate_all();
15}
16
18{
19 Vector<GeometrySet> geometry_sets = params.extract_input<Vector<GeometrySet>>("Geometry");
20
21 const NodeAttributeFilter &attribute_filter = params.get_attribute_filter("Geometry");
22
23 for (GeometrySet &geometry : geometry_sets) {
25 }
26
27 GeometrySet geometry_set_result = geometry::join_geometries(geometry_sets, attribute_filter);
28
29 params.set_output("Geometry", std::move(geometry_set_result));
30}
31
32static void node_register()
33{
34 static blender::bke::bNodeType ntype;
35
36 geo_node_type_base(&ntype, GEO_NODE_JOIN_GEOMETRY, "Join Geometry", NODE_CLASS_GEOMETRY);
38 ntype.declare = node_declare;
40}
42
43} // namespace blender::nodes::node_geo_join_geometry_cc
#define NODE_CLASS_GEOMETRY
Definition BKE_node.hh:418
#define NOD_REGISTER_NODE(REGISTER_FUNC)
static void remember_deformed_positions_if_necessary(GeometrySet &geometry)
local_group_size(16, 16) .push_constant(Type b
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
void node_register_type(bNodeType *ntype)
Definition node.cc:1708
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, int type, const char *name, short nclass)
Defines a node type.
Definition BKE_node.hh:218
NodeGeometryExecFunction geometry_node_execute
Definition BKE_node.hh:339
NodeDeclareFunction declare
Definition BKE_node.hh:347