Blender V4.3
NOD_geometry_nodes_gizmos.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
8#include "BLI_function_ref.hh"
10
13
14struct Object;
16struct wmWindowManager;
17
18namespace blender::nodes::gizmos {
19
20namespace ie = inverse_eval;
21
44
51
52bool is_builtin_gizmo_node(const bNode &node);
53
54using ForeachGizmoFn = FunctionRef<void(const Object &object,
55 const NodesModifierData &nmd,
56 const ComputeContext &compute_context,
57 const bNode &gizmo_node,
58 const bNodeSocket &gizmo_socket)>;
59
64void foreach_active_gizmo(const bContext &C,
65 ComputeContextBuilder &compute_context_builder,
67
68using ForeachGizmoInModifierFn = FunctionRef<void(const ComputeContext &compute_context,
69 const bNode &gizmo_node,
70 const bNodeSocket &gizmo_socket)>;
71
77 const NodesModifierData &nmd,
78 const wmWindowManager &wm,
79 ComputeContextBuilder &compute_context_builder,
81
87 const bNode &gizmo_node,
88 const bNodeSocket &gizmo_socket,
89 FunctionRef<void(const ComputeContext &context)> fn);
90
95void foreach_socket_on_gizmo_path(const ComputeContext &gizmo_context,
96 const bNode &gizmo_node,
97 const bNodeSocket &gizmo_socket,
98 FunctionRef<void(const ComputeContext &context,
99 const bNodeSocket &socket,
100 const ie::ElemVariant &elem)> fn);
101
107 const bNode &gizmo_node,
108 const bNodeSocket &gizmo_socket);
109
129 Object &object,
132 const ComputeContext &gizmo_context,
133 const bNodeSocket &gizmo_socket,
134 FunctionRef<void(bke::SocketValueVariant &value)> apply_on_gizmo_value_fn);
135
136} // namespace blender::nodes::gizmos
#define BLI_STRUCT_EQUALITY_OPERATORS_4(Type, m1, m2, m3, m4)
KDTree_3d * tree
void foreach_active_gizmo(const bContext &C, ComputeContextBuilder &compute_context_builder, const ForeachGizmoFn fn)
void apply_gizmo_change(bContext &C, Object &object, NodesModifierData &nmd, geo_eval_log::GeoModifierLog &eval_log, const ComputeContext &gizmo_context, const bNodeSocket &gizmo_socket, const FunctionRef< void(bke::SocketValueVariant &value)> apply_on_gizmo_value_fn)
bool update_tree_gizmo_propagation(bNodeTree &tree)
bool is_builtin_gizmo_node(const bNode &node)
ie::ElemVariant get_editable_gizmo_elem(const ComputeContext &gizmo_context, const bNode &gizmo_node, const bNodeSocket &gizmo_socket)
void foreach_socket_on_gizmo_path(const ComputeContext &gizmo_context, const bNode &gizmo_node, const bNodeSocket &gizmo_socket, FunctionRef< void(const ComputeContext &context, const bNodeSocket &socket, const ie::ElemVariant &elem)> fn)
void foreach_active_gizmo_in_modifier(const Object &object, const NodesModifierData &nmd, const wmWindowManager &wm, ComputeContextBuilder &compute_context_builder, const ForeachGizmoInModifierFn fn)
void foreach_compute_context_on_gizmo_path(const ComputeContext &gizmo_context, const bNode &gizmo_node, const bNodeSocket &gizmo_socket, FunctionRef< void(const ComputeContext &context)> fn)
MultiValueMap< ie::SocketElem, ie::SocketElem > gizmo_inputs_by_node_inputs
MultiValueMap< ie::GroupInputElem, ie::SocketElem > gizmo_inputs_by_group_inputs
MultiValueMap< ie::ValueNodeElem, ie::SocketElem > gizmo_inputs_by_value_nodes