Blender V4.3
NOD_geometry_nodes_execute.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
8#include "BLI_function_ref.hh"
10#include "BLI_set.hh"
11
12#include "BKE_idprop.hh"
13#include "BKE_node.hh"
14
15struct bNodeTree;
17namespace blender::bke {
18struct GeometrySet;
19}
20struct IDProperty;
21namespace blender::nodes {
22struct GeoNodesCallData;
23namespace geo_eval_log {
24class GeoModifierLog;
25} // namespace geo_eval_log
26} // namespace blender::nodes
27
28namespace blender::nodes {
29
31 Set<ID *> &r_ids,
32 bool &r_needs_own_transform_relation,
33 bool &r_needs_scene_camera_relation);
34
37
38std::optional<StringRef> input_attribute_name_get(const IDProperty &props,
39 const bNodeTreeInterfaceSocket &io_input);
40
45
50bool input_has_attribute_toggle(const bNodeTree &node_tree, const int socket_index);
51
53 const IDProperty &property,
54 bool use_name_for_ids = false);
55
56std::unique_ptr<IDProperty, bke::idprop::IDPropertyDeleter> id_property_create_from_socket(
57 const bNodeTreeInterfaceSocket &socket, bool use_name_for_ids);
58
59bke::GeometrySet execute_geometry_nodes_on_geometry(const bNodeTree &btree,
60 const IDProperty *properties,
61 const ComputeContext &base_compute_context,
62 GeoNodesCallData &call_data,
63 bke::GeometrySet input_geometry);
64
66 const IDProperty *old_properties,
67 IDProperty &properties,
68 bool use_name_for_ids = false);
69
71 const IDProperty *old_properties,
72 IDProperty &properties);
73
74} // namespace blender::nodes
eNodeSocketDatatype
KDTree_3d * tree
StringRef input_attribute_name_suffix()
StringRef input_use_attribute_suffix()
void update_input_properties_from_node_tree(const bNodeTree &tree, const IDProperty *old_properties, IDProperty &properties, const bool use_name_for_ids)
bool input_has_attribute_toggle(const bNodeTree &node_tree, const int socket_index)
void find_node_tree_dependencies(const bNodeTree &tree, Set< ID * > &r_ids, bool &r_needs_own_transform_relation, bool &r_needs_scene_camera_relation)
bool id_property_type_matches_socket(const bNodeTreeInterfaceSocket &socket, const IDProperty &property, const bool use_name_for_ids)
bke::GeometrySet execute_geometry_nodes_on_geometry(const bNodeTree &btree, const IDProperty *properties, const ComputeContext &base_compute_context, GeoNodesCallData &call_data, bke::GeometrySet input_geometry)
std::unique_ptr< IDProperty, bke::idprop::IDPropertyDeleter > id_property_create_from_socket(const bNodeTreeInterfaceSocket &socket, const bool use_name_for_ids)
void update_output_properties_from_node_tree(const bNodeTree &tree, const IDProperty *old_properties, IDProperty &properties)
bool socket_type_has_attribute_toggle(const eNodeSocketDatatype type)
std::optional< StringRef > input_attribute_name_get(const IDProperty &props, const bNodeTreeInterfaceSocket &io_input)