Blender  V2.93
node_intern.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2008 Blender Foundation.
17  * All rights reserved.
18  */
19 
24 #pragma once
25 
26 #include "BKE_node.h"
27 #include "UI_interface.h"
28 #include <stddef.h> /* for size_t */
29 
30 /* internal exports only */
31 
32 struct ARegion;
33 struct ARegionType;
34 struct Main;
35 struct NodeInsertOfsData;
36 struct View2D;
37 struct bContext;
38 struct bNode;
39 struct bNodeLink;
40 struct bNodeSocket;
41 struct wmGizmoGroupType;
42 struct wmKeyConfig;
43 struct wmWindow;
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49 /* temp data to pass on to modal */
50 typedef struct bNodeLinkDrag {
51  struct bNodeLinkDrag *next, *prev;
52 
53  /* List of links dragged by the operator.
54  * Note: This is a list of LinkData structs on top of the actual bNodeLinks.
55  * This way the links can be added to the node tree while being stored in this list.
56  */
59  int in_out;
60 
63 
68 
69 typedef struct SpaceNode_Runtime {
70  float aspect;
71 
73  float cursor[2];
74 
76  bool recalc;
77 
79  struct ListBase linkdrag;
80 
81  /* XXX hack for translate_attach op-macros to pass data from transform op to insert_offset op */
85 
86 /* space_node.c */
87 
88 /* transform between View2Ds in the tree path */
89 void space_node_group_offset(struct SpaceNode *snode, float *x, float *y);
90 
91 /* node_draw.cc */
92 float node_socket_calculate_height(const bNodeSocket *socket);
93 void node_link_calculate_multi_input_position(const float socket_x,
94  const float socket_y,
95  const int index,
96  const int total_inputs,
97  float r[2]);
98 
99 int node_get_colorid(struct bNode *node);
100 int node_get_resize_cursor(int directions);
101 void node_draw_shadow(const struct SpaceNode *snode,
102  const struct bNode *node,
103  float radius,
104  float alpha);
105 void node_draw_default(const struct bContext *C,
106  struct ARegion *region,
107  struct SpaceNode *snode,
108  struct bNodeTree *ntree,
109  struct bNode *node,
110  bNodeInstanceKey key);
111 void node_draw_sockets(const struct View2D *v2d,
112  const struct bContext *C,
113  struct bNodeTree *ntree,
114  struct bNode *node,
115  bool draw_outputs,
116  bool select_all);
117 void node_update_default(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node);
118 int node_select_area_default(struct bNode *node, int x, int y);
119 int node_tweak_area_default(struct bNode *node, int x, int y);
120 void node_socket_color_get(struct bContext *C,
121  struct bNodeTree *ntree,
122  struct PointerRNA *node_ptr,
123  struct bNodeSocket *sock,
124  float r_color[4]);
125 void node_update_nodetree(const struct bContext *C, struct bNodeTree *ntree);
126 void node_draw_nodetree(const struct bContext *C,
127  struct ARegion *region,
128  struct SpaceNode *snode,
129  struct bNodeTree *ntree,
130  bNodeInstanceKey parent_key);
131 void node_draw_space(const bContext *C, ARegion *region);
132 
133 void node_set_cursor(struct wmWindow *win, struct SpaceNode *snode, float cursor[2]);
134 /* DPI scaled coords */
135 void node_to_view(const struct bNode *node, float x, float y, float *rx, float *ry);
136 void node_to_updated_rect(const struct bNode *node, rctf *r_rect);
137 void node_from_view(const struct bNode *node, float x, float y, float *rx, float *ry);
138 
139 /* node_buttons.c */
140 void node_buttons_register(struct ARegionType *art);
141 
142 /* node_toolbar.c */
144 
145 /* node_ops.c */
146 void node_operatortypes(void);
147 void node_keymap(struct wmKeyConfig *keyconf);
148 
149 /* node_select.c */
150 void node_deselect_all(struct SpaceNode *snode);
151 void node_socket_select(struct bNode *node, struct bNodeSocket *sock);
152 void node_socket_deselect(struct bNode *node, struct bNodeSocket *sock, const bool deselect_node);
153 void node_deselect_all_input_sockets(struct SpaceNode *snode, const bool deselect_nodes);
154 void node_deselect_all_output_sockets(struct SpaceNode *snode, const bool deselect_nodes);
155 void node_select_single(struct bContext *C, struct bNode *node);
156 
157 void NODE_OT_select(struct wmOperatorType *ot);
158 void NODE_OT_select_all(struct wmOperatorType *ot);
161 void NODE_OT_select_box(struct wmOperatorType *ot);
166 void NODE_OT_find_node(struct wmOperatorType *ot);
167 
168 /* node_view.c */
169 int space_node_view_flag(struct bContext *C,
170  struct SpaceNode *snode,
171  ARegion *region,
172  const int node_flag,
173  const int smooth_viewtx);
174 
175 void NODE_OT_view_all(struct wmOperatorType *ot);
177 
182 
183 /* drawnode.c */
184 void nodelink_batch_start(struct SpaceNode *snode);
185 void nodelink_batch_end(struct SpaceNode *snode);
186 
187 void node_draw_link(struct View2D *v2d, struct SpaceNode *snode, struct bNodeLink *link);
188 void node_draw_link_bezier(const struct View2D *v2d,
189  const struct SpaceNode *snode,
190  const struct bNodeLink *link,
191  int th_col1,
192  int th_col2,
193  int th_col3);
194 bool node_link_bezier_points(const struct View2D *v2d,
195  const struct SpaceNode *snode,
196  const struct bNodeLink *link,
197  float coord_array[][2],
198  const int resol);
199 bool node_link_bezier_handles(const struct View2D *v2d,
200  const struct SpaceNode *snode,
201  const struct bNodeLink *link,
202  float vec[4][2]);
203 void draw_nodespace_back_pix(const struct bContext *C,
204  struct ARegion *region,
205  struct SpaceNode *snode,
206  bNodeInstanceKey parent_key);
207 
208 /* node_add.c */
210  const struct bContext *C, const char *idname, int type, float locx, float locy);
212 void NODE_OT_add_group(struct wmOperatorType *ot);
213 void NODE_OT_add_object(struct wmOperatorType *ot);
216 void NODE_OT_add_file(struct wmOperatorType *ot);
217 void NODE_OT_add_mask(struct wmOperatorType *ot);
219 
220 /* node_group.c */
221 const char *node_group_idname(struct bContext *C);
222 void NODE_OT_group_make(struct wmOperatorType *ot);
226 void NODE_OT_group_edit(struct wmOperatorType *ot);
227 
228 /* node_relationships.c */
229 void sort_multi_input_socket_links(struct SpaceNode *snode,
230  struct bNode *node,
231  struct bNodeLink *drag_link,
232  float cursor[2]);
233 bool node_connected_to_output(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node);
234 
235 void NODE_OT_link(struct wmOperatorType *ot);
236 void NODE_OT_link_make(struct wmOperatorType *ot);
237 void NODE_OT_links_cut(struct wmOperatorType *ot);
239 void NODE_OT_links_mute(struct wmOperatorType *ot);
240 
241 void NODE_OT_parent_set(struct wmOperatorType *ot);
242 void NODE_OT_join(struct wmOperatorType *ot);
243 void NODE_OT_attach(struct wmOperatorType *ot);
244 void NODE_OT_detach(struct wmOperatorType *ot);
245 
247 
249 
250 /* node_edit.c */
251 void snode_notify(struct bContext *C, struct SpaceNode *snode);
252 void snode_dag_update(struct bContext *C, struct SpaceNode *snode);
253 void snode_set_context(const struct bContext *C);
254 
255 void snode_update(struct SpaceNode *snode, struct bNode *node);
256 bool composite_node_active(struct bContext *C);
257 bool composite_node_editable(struct bContext *C);
258 
259 bool node_has_hidden_sockets(struct bNode *node);
260 void node_set_hidden_sockets(struct SpaceNode *snode, bNode *node, int set);
262 int node_find_indicated_socket(struct SpaceNode *snode,
263  struct bNode **nodep,
264  struct bNodeSocket **sockp,
265  const float cursor[2],
266  int in_out);
267 
268 void NODE_OT_duplicate(struct wmOperatorType *ot);
269 void NODE_OT_delete(struct wmOperatorType *ot);
271 void NODE_OT_resize(struct wmOperatorType *ot);
272 
280 
283 
287 
289 
290 /* Note: clipboard_cut is a simple macro of copy + delete */
293 
297 
299 
302 
303 /* node_widgets.c */
305 void NODE_GGT_backdrop_crop(struct wmGizmoGroupType *gzgt);
308 
311 
312 /* node_geometry_attribute_search.cc */
314  const struct bNodeTree *node_tree,
315  const struct bNode *node,
316  struct PointerRNA *socket_ptr,
317  struct uiLayout *layout);
318 
319 extern const char *node_context_dir[];
320 
321 /* XXXXXX */
322 
323 /* Nodes draw without dpi - the view zoom is flexible. */
324 #define HIDDEN_RAD (0.75f * U.widget_unit)
325 #define BASIS_RAD (0.2f * U.widget_unit)
326 #define NODE_DYS (U.widget_unit / 2)
327 #define NODE_DY U.widget_unit
328 #define NODE_SOCKDY (0.08f * U.widget_unit)
329 #define NODE_WIDTH(node) (node->width * UI_DPI_FAC)
330 #define NODE_HEIGHT(node) (node->height * UI_DPI_FAC)
331 #define NODE_MARGIN_X (1.10f * U.widget_unit)
332 #define NODE_SOCKSIZE (0.25f * U.widget_unit)
333 #define NODE_MULTI_INPUT_LINK_GAP (0.25f * U.widget_unit)
334 #define NODE_RESIZE_MARGIN (0.20f * U.widget_unit)
335 #define NODE_LINK_RESOL 12
336 
337 #ifdef __cplusplus
338 }
339 #endif
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
#define C
Definition: RandGen.cpp:39
OperationNode * node
static CCL_NAMESPACE_BEGIN const double alpha
bNodeTree * ntree
void NODE_OT_output_file_remove_active_socket(struct wmOperatorType *ot)
Definition: node_edit.c:1951
void NODE_OT_link_make(struct wmOperatorType *ot)
void NODE_OT_select_grouped(struct wmOperatorType *ot)
Definition: node_select.c:416
void NODE_OT_select_box(struct wmOperatorType *ot)
Definition: node_select.c:722
void NODE_OT_hide_socket_toggle(struct wmOperatorType *ot)
Definition: node_edit.c:1682
void NODE_OT_select_circle(struct wmOperatorType *ot)
Definition: node_select.c:794
void NODE_OT_node_copy_color(struct wmOperatorType *ot)
Definition: node_edit.c:2071
void NODE_OT_link(struct wmOperatorType *ot)
void NODE_OT_options_toggle(struct wmOperatorType *ot)
Definition: node_edit.c:1632
void NODE_OT_mute_toggle(struct wmOperatorType *ot)
Definition: node_edit.c:1726
void NODE_OT_add_group(struct wmOperatorType *ot)
Definition: node_add.c:422
void node_draw_default(const struct bContext *C, struct ARegion *region, struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *node, bNodeInstanceKey key)
bool node_has_hidden_sockets(struct bNode *node)
Definition: node_edit.c:1087
int node_render_changed_exec(bContext *, struct wmOperator *)
void NODE_OT_group_make(struct wmOperatorType *ot)
Definition: node_group.c:1062
void NODE_OT_cryptomatte_layer_add(struct wmOperatorType *ot)
Definition: node_edit.c:2779
void NODE_OT_detach(struct wmOperatorType *ot)
void NODE_OT_duplicate(struct wmOperatorType *ot)
Definition: node_edit.c:1341
struct SpaceNode_Runtime SpaceNode_Runtime
void NODE_OT_select_all(struct wmOperatorType *ot)
Definition: node_select.c:947
void node_draw_link(struct View2D *v2d, struct SpaceNode *snode, struct bNodeLink *link)
Definition: drawnode.c:4068
void NODE_OT_clipboard_paste(struct wmOperatorType *ot)
Definition: node_edit.c:2269
void NODE_OT_add_mask(struct wmOperatorType *ot)
Definition: node_add.c:909
void node_draw_nodetree(const struct bContext *C, struct ARegion *region, struct SpaceNode *snode, struct bNodeTree *ntree, bNodeInstanceKey parent_key)
void NODE_OT_group_ungroup(struct wmOperatorType *ot)
Definition: node_group.c:426
const char * node_group_idname(struct bContext *C)
Definition: node_group.c:110
void NODE_GGT_backdrop_corner_pin(struct wmGizmoGroupType *gzgt)
Definition: node_gizmo.c:632
void node_set_hidden_sockets(struct SpaceNode *snode, bNode *node, int set)
Definition: node_edit.c:1102
void NODE_OT_clear_viewer_border(struct wmOperatorType *ot)
Definition: node_edit.c:2735
void NODE_OT_add_file(struct wmOperatorType *ot)
Definition: node_add.c:836
void draw_nodespace_back_pix(const struct bContext *C, struct ARegion *region, struct SpaceNode *snode, bNodeInstanceKey parent_key)
void NODE_OT_cryptomatte_layer_remove(struct wmOperatorType *ot)
Definition: node_edit.c:2825
void NODE_GGT_backdrop_sun_beams(struct wmGizmoGroupType *gzgt)
Definition: node_gizmo.c:510
void NODE_OT_tree_socket_move(struct wmOperatorType *ot)
Definition: node_edit.c:2465
void NODE_OT_output_file_move_active_socket(struct wmOperatorType *ot)
Definition: node_edit.c:2018
void NODE_OT_view_selected(struct wmOperatorType *ot)
Definition: node_view.c:173
void NODE_OT_backimage_move(struct wmOperatorType *ot)
Definition: node_view.c:281
int node_get_colorid(struct bNode *node)
Definition: node_draw.cc:661
bool node_link_bezier_points(const struct View2D *v2d, const struct SpaceNode *snode, const struct bNodeLink *link, float coord_array[][2], const int resol)
void NODE_OT_backimage_sample(struct wmOperatorType *ot)
Definition: node_view.c:683
void NODE_OT_select_same_type_step(struct wmOperatorType *ot)
Definition: node_select.c:1157
void node_update_nodetree(const struct bContext *C, struct bNodeTree *ntree)
void NODE_OT_link_viewer(struct wmOperatorType *ot)
void NODE_OT_switch_view_update(struct wmOperatorType *ot)
Definition: node_edit.c:1817
void node_draw_link_bezier(const struct View2D *v2d, const struct SpaceNode *snode, const struct bNodeLink *link, int th_col1, int th_col2, int th_col3)
void NODE_OT_parent_set(struct wmOperatorType *ot)
int node_get_resize_cursor(int directions)
Definition: node_draw.cc:1704
void node_link_calculate_multi_input_position(const float socket_x, const float socket_y, const int index, const int total_inputs, float r[2])
Definition: node_edit.c:111
bool composite_node_active(struct bContext *C)
Definition: node_edit.c:370
void node_deselect_all_input_sockets(struct SpaceNode *snode, const bool deselect_nodes)
Definition: node_select.c:213
void NODE_OT_select_lasso(struct wmOperatorType *ot)
Definition: node_select.c:899
void NODE_OT_output_file_add_socket(struct wmOperatorType *ot)
Definition: node_edit.c:1902
void node_socket_deselect(struct bNode *node, struct bNodeSocket *sock, const bool deselect_node)
Definition: node_select.c:166
void NODE_OT_tree_socket_remove(struct wmOperatorType *ot)
Definition: node_edit.c:2390
void NODE_OT_select(struct wmOperatorType *ot)
Definition: node_select.c:639
void NODE_OT_delete(struct wmOperatorType *ot)
Definition: node_edit.c:1770
void NODE_OT_insert_offset(struct wmOperatorType *ot)
void NODE_OT_tree_socket_add(struct wmOperatorType *ot)
Definition: node_edit.c:2340
void nodelink_batch_start(struct SpaceNode *snode)
void NODE_OT_select_linked_from(struct wmOperatorType *ot)
Definition: node_select.c:1053
void node_draw_sockets(const struct View2D *v2d, const struct bContext *C, struct bNodeTree *ntree, struct bNode *node, bool draw_outputs, bool select_all)
void NODE_OT_render_changed(struct wmOperatorType *ot)
Definition: node_edit.c:1487
void node_to_view(const struct bNode *node, float x, float y, float *rx, float *ry)
void NODE_OT_resize(struct wmOperatorType *ot)
Definition: node_edit.c:1068
int node_tweak_area_default(struct bNode *node, int x, int y)
Definition: node_draw.cc:656
void snode_notify(struct bContext *C, struct SpaceNode *snode)
Definition: node_edit.c:411
void NODE_OT_backimage_zoom(struct wmOperatorType *ot)
Definition: node_view.c:318
void NODE_OT_join(struct wmOperatorType *ot)
int node_select_area_default(struct bNode *node, int x, int y)
Definition: node_draw.cc:651
void node_to_updated_rect(const struct bNode *node, rctf *r_rect)
bool composite_node_editable(struct bContext *C)
Definition: node_edit.c:382
void NODE_OT_add_reroute(struct wmOperatorType *ot)
Definition: node_add.c:301
void NODE_OT_add_collection(struct wmOperatorType *ot)
Definition: node_add.c:730
void NODE_OT_group_insert(struct wmOperatorType *ot)
Definition: node_group.c:1117
void NODE_OT_clipboard_copy(struct wmOperatorType *ot)
Definition: node_edit.c:2148
void node_set_cursor(struct wmWindow *win, struct SpaceNode *snode, float cursor[2])
Definition: node_draw.cc:1718
void NODE_OT_links_mute(struct wmOperatorType *ot)
struct bNodeLinkDrag bNodeLinkDrag
void node_deselect_all(struct SpaceNode *snode)
Definition: node_select.c:204
void NODE_OT_new_node_tree(struct wmOperatorType *ot)
Definition: node_add.c:999
void NODE_OT_attach(struct wmOperatorType *ot)
void NODE_OT_links_detach(struct wmOperatorType *ot)
void node_geometry_add_attribute_search_button(const struct bContext *C, const struct bNodeTree *node_tree, const struct bNode *node, struct PointerRNA *socket_ptr, struct uiLayout *layout)
void NODE_OT_select_linked_to(struct wmOperatorType *ot)
Definition: node_select.c:1001
void snode_dag_update(struct bContext *C, struct SpaceNode *snode)
Definition: node_edit.c:393
int space_node_view_flag(struct bContext *C, struct SpaceNode *snode, ARegion *region, const int node_flag, const int smooth_viewtx)
Definition: node_view.c:61
void node_socket_select(struct bNode *node, struct bNodeSocket *sock)
Definition: node_select.c:156
void NODE_OT_find_node(struct wmOperatorType *ot)
Definition: node_select.c:1295
void node_draw_shadow(const struct SpaceNode *snode, const struct bNode *node, float radius, float alpha)
void node_deselect_all_output_sockets(struct SpaceNode *snode, const bool deselect_nodes)
Definition: node_select.c:246
void node_from_view(const struct bNode *node, float x, float y, float *rx, float *ry)
void space_node_group_offset(struct SpaceNode *snode, float *x, float *y)
Definition: space_node.c:233
void NODE_OT_group_edit(struct wmOperatorType *ot)
Definition: node_group.c:173
void NODE_OT_backimage_fit(struct wmOperatorType *ot)
Definition: node_view.c:383
void NODE_OT_delete_reconnect(struct wmOperatorType *ot)
Definition: node_edit.c:1855
const char * node_context_dir[]
Definition: space_node.c:870
void snode_update(struct SpaceNode *snode, struct bNode *node)
Definition: node_edit.c:643
bool node_connected_to_output(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node)
void NODE_OT_active_preview_toggle(struct wmOperatorType *ot)
void NODE_OT_hide_toggle(struct wmOperatorType *ot)
Definition: node_edit.c:1568
void node_draw_space(const bContext *C, ARegion *region)
Definition: node_draw.cc:1939
float node_socket_calculate_height(const bNodeSocket *socket)
Definition: node_edit.c:102
void NODE_OT_add_texture(struct wmOperatorType *ot)
Definition: node_add.c:625
void NODE_OT_read_viewlayers(struct wmOperatorType *ot)
Definition: node_edit.c:1434
void NODE_OT_shader_script_update(struct wmOperatorType *ot)
Definition: node_edit.c:2613
void snode_set_context(const struct bContext *C)
void NODE_OT_links_cut(struct wmOperatorType *ot)
bNode * node_add_node(const struct bContext *C, const char *idname, int type, float locx, float locy)
void NODE_GGT_backdrop_transform(struct wmGizmoGroupType *gzgt)
Definition: node_gizmo.c:184
void NODE_OT_viewer_border(struct wmOperatorType *ot)
Definition: node_edit.c:2702
void nodelink_batch_end(struct SpaceNode *snode)
Definition: drawnode.c:3976
void node_socket_color_get(struct bContext *C, struct bNodeTree *ntree, struct PointerRNA *node_ptr, struct bNodeSocket *sock, float r_color[4])
Definition: node_draw.cc:810
bool node_link_bezier_handles(const struct View2D *v2d, const struct SpaceNode *snode, const struct bNodeLink *link, float vec[4][2])
void NODE_GGT_backdrop_crop(struct wmGizmoGroupType *gzgt)
Definition: node_gizmo.c:405
void NODE_OT_group_separate(struct wmOperatorType *ot)
Definition: node_group.c:639
void NODE_OT_preview_toggle(struct wmOperatorType *ot)
Definition: node_edit.c:1601
void node_buttons_register(struct ARegionType *art)
Definition: node_buttons.c:189
void node_select_single(struct bContext *C, struct bNode *node)
Definition: node_select.c:454
int node_find_indicated_socket(struct SpaceNode *snode, struct bNode **nodep, struct bNodeSocket **sockp, const float cursor[2], int in_out)
Definition: node_edit.c:1149
void node_update_default(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node)
void node_operatortypes(void)
Definition: node_ops.c:38
void node_keymap(struct wmKeyConfig *keyconf)
Definition: node_ops.c:204
void sort_multi_input_socket_links(struct SpaceNode *snode, struct bNode *node, struct bNodeLink *drag_link, float cursor[2])
void NODE_OT_view_all(struct wmOperatorType *ot)
Definition: node_view.c:140
void node_toolbar_register(struct ARegionType *art)
void NODE_OT_add_object(struct wmOperatorType *ot)
Definition: node_add.c:526
Definition: BKE_main.h:116
struct ListBase linkdrag
Definition: node_intern.h:79
struct NodeInsertOfsData * iofsd
Definition: node_intern.h:83
struct bNodeLink * last_picked_multi_input_socket_link
Definition: node_intern.h:62
struct bNodeLinkDrag * next
Definition: node_intern.h:51
struct bNode * last_node_hovered_while_dragging_a_link
Definition: node_intern.h:66
ListBase links
Definition: node_intern.h:57
struct bNodeLinkDrag * prev
Definition: node_intern.h:51
bool from_multi_input_socket
Definition: node_intern.h:58
wmOperatorType * ot
Definition: wm_files.c:3156