Blender  V3.3
Macros | Enumerations | Functions
ED_node.h File Reference

Go to the source code of this file.

Macros

#define NODE_GRID_STEP_SIZE   U.widget_unit /* Based on the grid nodes snap to. */
 
#define NODE_EDGE_PAN_INSIDE_PAD   2
 
#define NODE_EDGE_PAN_OUTSIDE_PAD   0 /* Disable clamping for node panning, use whole screen. */
 
#define NODE_EDGE_PAN_SPEED_RAMP   1
 
#define NODE_EDGE_PAN_MAX_SPEED   26 /* In UI units per second, slower than default. */
 
#define NODE_EDGE_PAN_DELAY   0.5f
 
#define NODE_EDGE_PAN_ZOOM_INFLUENCE   0.5f
 

Enumerations

enum  NodeBorder { NODE_TOP = 1 , NODE_BOTTOM = 2 , NODE_LEFT = 4 , NODE_RIGHT = 8 }
 

Functions

void ED_node_cursor_location_get (const struct SpaceNode *snode, float value[2])
 
void ED_node_cursor_location_set (struct SpaceNode *snode, const float value[2])
 
int ED_node_tree_path_length (struct SpaceNode *snode)
 
void ED_node_tree_path_get (struct SpaceNode *snode, char *value)
 
void ED_node_tree_start (struct SpaceNode *snode, struct bNodeTree *ntree, struct ID *id, struct ID *from)
 
void ED_node_tree_push (struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *gnode)
 
void ED_node_tree_pop (struct SpaceNode *snode)
 
int ED_node_tree_depth (struct SpaceNode *snode)
 
struct bNodeTreeED_node_tree_get (struct SpaceNode *snode, int level)
 
void ED_node_set_active_viewer_key (struct SpaceNode *snode)
 
void ED_node_init_butfuncs (void)
 
void ED_init_custom_node_type (struct bNodeType *ntype)
 
void ED_init_custom_node_socket_type (struct bNodeSocketType *stype)
 
void ED_init_standard_node_socket_type (struct bNodeSocketType *stype)
 
void ED_init_node_socket_type_virtual (struct bNodeSocketType *stype)
 
void ED_node_sample_set (const float col[4])
 
void ED_node_draw_snap (struct View2D *v2d, const float cent[2], float size, NodeBorder border, unsigned int pos)
 
void ED_node_socket_draw (struct bNodeSocket *sock, const struct rcti *rect, const float color[4], float scale)
 
void ED_node_tree_update (const struct bContext *C)
 
void ED_node_tag_update_id (struct ID *id)
 
float ED_node_grid_size (void)
 
void ED_node_link_intersect_test (struct ScrArea *area, int test)
 
void ED_node_link_insert (struct Main *bmain, struct ScrArea *area)
 
void ED_node_set_tree_type (struct SpaceNode *snode, struct bNodeTreeType *typeinfo)
 
bool ED_node_is_compositor (struct SpaceNode *snode)
 
bool ED_node_is_shader (struct SpaceNode *snode)
 
bool ED_node_is_texture (struct SpaceNode *snode)
 
bool ED_node_is_geometry (struct SpaceNode *snode)
 
void ED_node_shader_default (const struct bContext *C, struct ID *id)
 
void ED_node_composit_default (const struct bContext *C, struct Scene *scene)
 
void ED_node_texture_default (const struct bContext *C, struct Tex *tex)
 
void ED_node_post_apply_transform (struct bContext *C, struct bNodeTree *ntree)
 
void ED_node_set_active (struct Main *bmain, struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *node, bool *r_active_texture_changed)
 
void ED_node_tree_propagate_change (const struct bContext *C, struct Main *bmain, struct bNodeTree *ntree)
 
void ED_node_composite_job (const struct bContext *C, struct bNodeTree *nodetree, struct Scene *scene_owner)
 
void ED_operatormacros_node (void)
 
bool ED_space_node_get_position (struct Main *bmain, struct SpaceNode *snode, struct ARegion *region, const int mval[2], float fpos[2])
 
bool ED_space_node_color_sample (struct Main *bmain, struct SpaceNode *snode, struct ARegion *region, const int mval[2], float r_col[3])
 

Macro Definition Documentation

◆ NODE_EDGE_PAN_DELAY

#define NODE_EDGE_PAN_DELAY   0.5f

Definition at line 41 of file ED_node.h.

◆ NODE_EDGE_PAN_INSIDE_PAD

#define NODE_EDGE_PAN_INSIDE_PAD   2

Definition at line 37 of file ED_node.h.

◆ NODE_EDGE_PAN_MAX_SPEED

#define NODE_EDGE_PAN_MAX_SPEED   26 /* In UI units per second, slower than default. */

Definition at line 40 of file ED_node.h.

◆ NODE_EDGE_PAN_OUTSIDE_PAD

#define NODE_EDGE_PAN_OUTSIDE_PAD   0 /* Disable clamping for node panning, use whole screen. */

Definition at line 38 of file ED_node.h.

◆ NODE_EDGE_PAN_SPEED_RAMP

#define NODE_EDGE_PAN_SPEED_RAMP   1

Definition at line 39 of file ED_node.h.

◆ NODE_EDGE_PAN_ZOOM_INFLUENCE

#define NODE_EDGE_PAN_ZOOM_INFLUENCE   0.5f

Definition at line 42 of file ED_node.h.

◆ NODE_GRID_STEP_SIZE

#define NODE_GRID_STEP_SIZE   U.widget_unit /* Based on the grid nodes snap to. */

Definition at line 36 of file ED_node.h.

Enumeration Type Documentation

◆ NodeBorder

enum NodeBorder
Enumerator
NODE_TOP 
NODE_BOTTOM 
NODE_LEFT 
NODE_RIGHT 

Definition at line 29 of file ED_node.h.

Function Documentation

◆ ED_init_custom_node_socket_type()

void ED_init_custom_node_socket_type ( struct bNodeSocketType stype)

◆ ED_init_custom_node_type()

void ED_init_custom_node_type ( struct bNodeType ntype)

◆ ED_init_node_socket_type_virtual()

void ED_init_node_socket_type_virtual ( struct bNodeSocketType stype)

◆ ED_init_standard_node_socket_type()

void ED_init_standard_node_socket_type ( struct bNodeSocketType stype)

◆ ED_node_composit_default()

void ED_node_composit_default ( const struct bContext C,
struct Scene scene 
)

Assumes nothing being done in ntree yet, sets the default in/out node. Called from shading buttons or header.

Referenced by blender::bke::tests::CompositorTestData::setup().

◆ ED_node_composite_job()

void ED_node_composite_job ( const struct bContext C,
struct bNodeTree nodetree,
struct Scene scene_owner 
)
Parameters
scene_owneris the owner of the job, we don't use it for anything else currently so could also be a void pointer, but for now keep it an 'Scene' for consistency.
Note
only call from spaces refresh callbacks, not direct! - use with care.

Referenced by image_refresh(), and blender::ed::space_node::node_area_refresh().

◆ ED_node_cursor_location_get()

void ED_node_cursor_location_get ( const struct SpaceNode snode,
float  value[2] 
)

◆ ED_node_cursor_location_set()

void ED_node_cursor_location_set ( struct SpaceNode snode,
const float  value[2] 
)

Definition at line 200 of file space_node.cc.

References copy_v2_v2(), and SpaceNode::runtime.

◆ ED_node_draw_snap()

void ED_node_draw_snap ( struct View2D v2d,
const float  cent[2],
float  size,
NodeBorder  border,
unsigned int  pos 
)

◆ ED_node_grid_size()

float ED_node_grid_size ( void  )

Definition at line 87 of file node_draw.cc.

Referenced by initSnapSpatial().

◆ ED_node_init_butfuncs()

void ED_node_init_butfuncs ( void  )

◆ ED_node_is_compositor()

bool ED_node_is_compositor ( struct SpaceNode snode)

◆ ED_node_is_geometry()

bool ED_node_is_geometry ( struct SpaceNode snode)

◆ ED_node_is_shader()

bool ED_node_is_shader ( struct SpaceNode snode)

◆ ED_node_is_texture()

bool ED_node_is_texture ( struct SpaceNode snode)

◆ ED_node_link_insert()

void ED_node_link_insert ( struct Main bmain,
struct ScrArea area 
)

◆ ED_node_link_intersect_test()

void ED_node_link_intersect_test ( struct ScrArea area,
int  test 
)

◆ ED_node_post_apply_transform()

void ED_node_post_apply_transform ( struct bContext C,
struct bNodeTree ntree 
)

◆ ED_node_sample_set()

void ED_node_sample_set ( const float  col[4])

◆ ED_node_set_active()

void ED_node_set_active ( struct Main bmain,
struct SpaceNode snode,
struct bNodeTree ntree,
struct bNode node,
bool r_active_texture_changed 
)

◆ ED_node_set_active_viewer_key()

void ED_node_set_active_viewer_key ( struct SpaceNode snode)

◆ ED_node_set_tree_type()

void ED_node_set_tree_type ( struct SpaceNode snode,
struct bNodeTreeType typeinfo 
)

◆ ED_node_shader_default()

void ED_node_shader_default ( const struct bContext C,
struct ID id 
)

Assumes nothing being done in ntree yet, sets the default in/out node. Called from shading buttons or header.

Referenced by new_material_exec(), new_world_exec(), and proj_paint_add_slot().

◆ ED_node_socket_draw()

void ED_node_socket_draw ( struct bNodeSocket sock,
const struct rcti rect,
const float  color[4],
float  scale 
)

Draw a single node socket at default size.

Note
this is only called from external code, internally node_socket_draw_nested() is used for optimized drawing of multiple/all sockets of a node.

Referenced by widget_draw_node_link_socket().

◆ ED_node_tag_update_id()

void ED_node_tag_update_id ( struct ID id)

◆ ED_node_texture_default()

void ED_node_texture_default ( const struct bContext C,
struct Tex tex 
)

Assumes nothing being done in ntree yet, sets the default in/out node. Called from shading buttons or header.

◆ ED_node_tree_depth()

int ED_node_tree_depth ( struct SpaceNode snode)

Definition at line 140 of file space_node.cc.

References BLI_listbase_count(), and SpaceNode::treepath.

◆ ED_node_tree_get()

struct bNodeTree* ED_node_tree_get ( struct SpaceNode snode,
int  level 
)

◆ ED_node_tree_path_get()

void ED_node_tree_path_get ( struct SpaceNode snode,
char *  value 
)

Definition at line 170 of file space_node.cc.

References LISTBASE_FOREACH_INDEX, and SpaceNode::treepath.

◆ ED_node_tree_path_length()

int ED_node_tree_path_length ( struct SpaceNode snode)

◆ ED_node_tree_pop()

void ED_node_tree_pop ( struct SpaceNode snode)

◆ ED_node_tree_propagate_change()

void ED_node_tree_propagate_change ( const struct bContext C,
struct Main bmain,
struct bNodeTree ntree 
)

Call after one or more node trees have been changed and tagged accordingly.

This function will make sure that other parts of Blender update accordingly. For example, if the node group interface changed, parent node groups have to be updated as well.

Additionally, this will send notifiers and tag the depsgraph based on the changes. Depsgraph relation updates have to be triggered by the caller.

Parameters
CContext if available. This can be null.
bmainMain whose data-blocks should be updated based on the changes.
ntreeUnder some circumstances the caller knows that only one node tree has changed since the last update. In this case the function may be able to skip scanning #bmain for other things that have to be changed. It may still scan #bmain if the interface of the node tree has changed.

Referenced by blender::ed::space_node::add_group_input_node_fn(), blender::ed::space_node::add_reroute_exec(), blender::ed::space_node::attribute_search_exec_fn(), blender::ed::space_node::cut_links_exec(), blender::ed::space_node::detach_links_exec(), ED_node_link_insert(), ED_object_assign_active_image(), blender::ed::curves::ensure_surface_deformation_node_exists(), blender::ed::space_node::link_drag_search_exec_fn(), blender::ed::space_node::viewer_linking::link_socket_to_viewer(), blender::ed::space_node::mute_links_exec(), blender::ed::space_node::node_active_link_viewer_exec(), blender::ed::space_node::node_add_collection_exec(), blender::ed::space_node::node_add_file_exec(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_add_mask_exec(), blender::ed::space_node::node_add_node(), blender::ed::space_node::node_add_object_exec(), blender::ed::space_node::node_group_insert_exec(), blender::ed::space_node::node_group_make_exec(), blender::ed::space_node::node_group_separate_exec(), blender::ed::space_node::node_group_ungroup_exec(), blender::ed::space_node::node_link_exit(), blender::ed::space_node::node_make_link_exec(), blender::ed::space_node::node_property_update_default(), blender::ed::space_node::node_socket_add_replace(), blender::ed::space_node::node_socket_disconnect(), blender::ed::space_node::node_socket_remove(), proj_paint_add_slot(), and special_aftertrans_update__node().

◆ ED_node_tree_push()

void ED_node_tree_push ( struct SpaceNode snode,
struct bNodeTree ntree,
struct bNode gnode 
)

◆ ED_node_tree_start()

void ED_node_tree_start ( struct SpaceNode snode,
struct bNodeTree ntree,
struct ID id,
struct ID from 
)

◆ ED_node_tree_update()

void ED_node_tree_update ( const struct bContext C)

◆ ED_operatormacros_node()

void ED_operatormacros_node ( void  )

◆ ED_space_node_color_sample()

bool ED_space_node_color_sample ( struct Main bmain,
struct SpaceNode snode,
struct ARegion region,
const int  mval[2],
float  r_col[3] 
)

◆ ED_space_node_get_position()

bool ED_space_node_get_position ( struct Main bmain,
struct SpaceNode snode,
struct ARegion region,
const int  mval[2],
float  fpos[2] 
)