Blender V4.3
ED_node_c.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2009 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11struct ARegion;
12struct ID;
13struct Main;
14struct Scene;
15struct SpaceNode;
16struct Tex;
17struct View2D;
18struct bContext;
19struct bNode;
20struct bNodeTree;
21namespace blender::bke {
22struct bNodeTreeType;
23struct bNodeType;
24struct bNodeSocketType;
25} // namespace blender::bke
26
34
35#define NODE_GRID_STEP_SIZE (20.0f * UI_SCALE_FAC) /* Based on the grid nodes snap to. */
36#define NODE_EDGE_PAN_INSIDE_PAD 2
37#define NODE_EDGE_PAN_OUTSIDE_PAD 0 /* Disable clamping for node panning, use whole screen. */
38#define NODE_EDGE_PAN_SPEED_RAMP 1
39#define NODE_EDGE_PAN_MAX_SPEED 26 /* In UI units per second, slower than default. */
40#define NODE_EDGE_PAN_DELAY 0.5f
41#define NODE_EDGE_PAN_ZOOM_INFLUENCE 0.5f
42
43/* `clipboard.cc` */
44
46
47/* `space_node.cc` */
48
49void ED_node_cursor_location_get(const SpaceNode *snode, float value[2]);
50void ED_node_cursor_location_set(SpaceNode *snode, const float value[2]);
51
56void ED_node_tree_path_get(SpaceNode *snode, char *value);
57
58void ED_node_tree_start(SpaceNode *snode, bNodeTree *ntree, ID *id, ID *from);
59void ED_node_tree_push(SpaceNode *snode, bNodeTree *ntree, bNode *gnode);
60void ED_node_tree_pop(SpaceNode *snode);
62bNodeTree *ED_node_tree_get(SpaceNode *snode, int level);
63
65
66/* `drawnode.cc` */
67
73void ED_node_sample_set(const float col[4]);
75 View2D *v2d, const float cent[2], float size, NodeBorder border, unsigned int pos);
76void ED_node_type_draw_color(const char *idname, float *r_color);
77
78/* `node_draw.cc` */
79
80void ED_node_tree_update(const bContext *C);
82
83float ED_node_grid_size();
84
85/* `node_edit.cc` */
86
88bool ED_node_is_compositor(const SpaceNode *snode);
89bool ED_node_is_shader(SpaceNode *snode);
90bool ED_node_is_texture(SpaceNode *snode);
93
98void ED_node_shader_default(const bContext *C, ID *id);
103void ED_node_composit_default(const bContext *C, Scene *scene);
108void ED_node_texture_default(const bContext *C, Tex *tex);
111 Main *bmain, SpaceNode *snode, bNodeTree *ntree, bNode *node, bool *r_active_texture_changed);
112
129void ED_node_tree_propagate_change(const bContext *C, Main *bmain, bNodeTree *ntree);
130
138void ED_node_composite_job(const bContext *C, bNodeTree *nodetree, Scene *scene_owner);
139
140/* `node_ops.cc` */
141
143
144/* `node_view.cc` */
145
150 Main *bmain, SpaceNode *snode, ARegion *region, const int mval[2], float fpos[2]);
156 Main *bmain, SpaceNode *snode, ARegion *region, const int mval[2], float r_col[3]);
#define ENUM_OPERATORS(_type, _max)
void ED_node_draw_snap(View2D *v2d, const float cent[2], float size, NodeBorder border, unsigned int pos)
Definition drawnode.cc:2412
bool ED_space_node_get_position(Main *bmain, SpaceNode *snode, ARegion *region, const int mval[2], float fpos[2])
Definition node_view.cc:469
void ED_node_sample_set(const float col[4])
Definition drawnode.cc:160
void ED_node_tree_propagate_change(const bContext *C, Main *bmain, bNodeTree *ntree)
Definition node_edit.cc:492
bNodeTree * ED_node_tree_get(SpaceNode *snode, int level)
void ED_node_texture_default(const bContext *C, Tex *tex)
Definition node_edit.cc:648
void ED_node_set_tree_type(SpaceNode *snode, blender::bke::bNodeTreeType *typeinfo)
Definition node_edit.cc:513
void ED_node_clipboard_free()
Definition clipboard.cc:523
bool ED_node_is_compositor(const SpaceNode *snode)
Definition node_edit.cc:523
void ED_operatormacros_node()
Definition node_ops.cc:131
void ED_node_tree_push(SpaceNode *snode, bNodeTree *ntree, bNode *gnode)
void ED_node_cursor_location_set(SpaceNode *snode, const float value[2])
void ED_init_standard_node_socket_type(blender::bke::bNodeSocketType *stype)
Definition drawnode.cc:1603
void ED_node_set_active(Main *bmain, SpaceNode *snode, bNodeTree *ntree, bNode *node, bool *r_active_texture_changed)
Definition node_edit.cc:722
bool ED_space_node_color_sample(Main *bmain, SpaceNode *snode, ARegion *region, const int mval[2], float r_col[3])
Definition node_view.cc:496
void ED_node_tree_path_get(SpaceNode *snode, char *value)
int ED_node_tree_depth(SpaceNode *snode)
void ED_init_custom_node_socket_type(blender::bke::bNodeSocketType *stype)
Definition drawnode.cc:1102
void ED_node_set_active_viewer_key(SpaceNode *snode)
void ED_init_node_socket_type_virtual(blender::bke::bNodeSocketType *stype)
Definition drawnode.cc:1612
void ED_node_type_draw_color(const char *idname, float *r_color)
Definition drawnode.cc:1620
float ED_node_grid_size()
Definition node_draw.cc:142
bool ED_node_is_shader(SpaceNode *snode)
Definition node_edit.cc:528
void ED_node_post_apply_transform(bContext *C, bNodeTree *ntree)
Definition node_edit.cc:871
NodeBorder
Definition ED_node_c.hh:27
@ NODE_LEFT
Definition ED_node_c.hh:30
@ NODE_RIGHT
Definition ED_node_c.hh:31
@ NODE_BOTTOM
Definition ED_node_c.hh:29
@ NODE_TOP
Definition ED_node_c.hh:28
int ED_node_tree_path_length(SpaceNode *snode)
void ED_node_tree_pop(SpaceNode *snode)
void ED_node_tag_update_id(ID *id)
Definition node_draw.cc:174
void ED_node_composite_job(const bContext *C, bNodeTree *nodetree, Scene *scene_owner)
Definition node_edit.cc:375
void ED_node_composit_default(const bContext *C, Scene *scene)
Definition node_edit.cc:618
bool ED_node_is_geometry(SpaceNode *snode)
Definition node_edit.cc:538
void ED_node_cursor_location_get(const SpaceNode *snode, float value[2])
bool ED_node_supports_preview(SpaceNode *snode)
Definition node_edit.cc:543
void ED_node_shader_default(const bContext *C, ID *id)
Definition node_edit.cc:549
bool ED_node_is_texture(SpaceNode *snode)
Definition node_edit.cc:533
void ED_node_init_butfuncs()
Definition drawnode.cc:1067
void ED_node_tree_start(SpaceNode *snode, bNodeTree *ntree, ID *id, ID *from)
Definition space_node.cc:66
void ED_init_custom_node_type(blender::bke::bNodeType *ntype)
Definition drawnode.cc:1100
void ED_node_tree_update(const bContext *C)
Definition node_draw.cc:147
uint col
Definition DNA_ID.h:413
Defines a socket type.
Definition BKE_node.hh:151
Defines a node type.
Definition BKE_node.hh:218