Blender V4.3
ED_node_c.hh File Reference

Go to the source code of this file.

Namespaces

namespace  blender
 
namespace  blender::bke
 

Macros

#define NODE_GRID_STEP_SIZE   (20.0f * UI_SCALE_FAC) /* 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_clipboard_free ()
 
void ED_node_cursor_location_get (const SpaceNode *snode, float value[2])
 
void ED_node_cursor_location_set (SpaceNode *snode, const float value[2])
 
int ED_node_tree_path_length (SpaceNode *snode)
 
void ED_node_tree_path_get (SpaceNode *snode, char *value)
 
void ED_node_tree_start (SpaceNode *snode, bNodeTree *ntree, ID *id, ID *from)
 
void ED_node_tree_push (SpaceNode *snode, bNodeTree *ntree, bNode *gnode)
 
void ED_node_tree_pop (SpaceNode *snode)
 
int ED_node_tree_depth (SpaceNode *snode)
 
bNodeTreeED_node_tree_get (SpaceNode *snode, int level)
 
void ED_node_set_active_viewer_key (SpaceNode *snode)
 
void ED_node_init_butfuncs ()
 
void ED_init_custom_node_type (blender::bke::bNodeType *ntype)
 
void ED_init_custom_node_socket_type (blender::bke::bNodeSocketType *stype)
 
void ED_init_standard_node_socket_type (blender::bke::bNodeSocketType *stype)
 
void ED_init_node_socket_type_virtual (blender::bke::bNodeSocketType *stype)
 
void ED_node_sample_set (const float col[4])
 
void ED_node_draw_snap (View2D *v2d, const float cent[2], float size, NodeBorder border, unsigned int pos)
 
void ED_node_type_draw_color (const char *idname, float *r_color)
 
void ED_node_tree_update (const bContext *C)
 
void ED_node_tag_update_id (ID *id)
 
float ED_node_grid_size ()
 
void ED_node_set_tree_type (SpaceNode *snode, blender::bke::bNodeTreeType *typeinfo)
 
bool ED_node_is_compositor (const SpaceNode *snode)
 
bool ED_node_is_shader (SpaceNode *snode)
 
bool ED_node_is_texture (SpaceNode *snode)
 
bool ED_node_is_geometry (SpaceNode *snode)
 
bool ED_node_supports_preview (SpaceNode *snode)
 
void ED_node_shader_default (const bContext *C, ID *id)
 
void ED_node_composit_default (const bContext *C, Scene *scene)
 
void ED_node_texture_default (const bContext *C, Tex *tex)
 
void ED_node_post_apply_transform (bContext *C, bNodeTree *ntree)
 
void ED_node_set_active (Main *bmain, SpaceNode *snode, bNodeTree *ntree, bNode *node, bool *r_active_texture_changed)
 
void ED_node_tree_propagate_change (const bContext *C, Main *bmain, bNodeTree *ntree)
 
void ED_node_composite_job (const bContext *C, bNodeTree *nodetree, Scene *scene_owner)
 
void ED_operatormacros_node ()
 
bool ED_space_node_get_position (Main *bmain, SpaceNode *snode, ARegion *region, const int mval[2], float fpos[2])
 
bool ED_space_node_color_sample (Main *bmain, SpaceNode *snode, ARegion *region, const int mval[2], float r_col[3])
 

Macro Definition Documentation

◆ NODE_EDGE_PAN_DELAY

#define NODE_EDGE_PAN_DELAY   0.5f

◆ NODE_EDGE_PAN_INSIDE_PAD

#define NODE_EDGE_PAN_INSIDE_PAD   2

◆ NODE_EDGE_PAN_MAX_SPEED

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

◆ NODE_EDGE_PAN_OUTSIDE_PAD

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

◆ NODE_EDGE_PAN_SPEED_RAMP

#define NODE_EDGE_PAN_SPEED_RAMP   1

◆ NODE_EDGE_PAN_ZOOM_INFLUENCE

#define NODE_EDGE_PAN_ZOOM_INFLUENCE   0.5f

◆ NODE_GRID_STEP_SIZE

#define NODE_GRID_STEP_SIZE   (20.0f * UI_SCALE_FAC) /* Based on the grid nodes snap to. */

Definition at line 35 of file ED_node_c.hh.

Referenced by ED_node_grid_size(), and blender::ed::space_node::node_draw_space().

Enumeration Type Documentation

◆ NodeBorder

enum NodeBorder
Enumerator
NODE_TOP 
NODE_BOTTOM 
NODE_LEFT 
NODE_RIGHT 

Definition at line 27 of file ED_node_c.hh.

Function Documentation

◆ ED_init_custom_node_socket_type()

void ED_init_custom_node_socket_type ( blender::bke::bNodeSocketType * stype)

◆ ED_init_custom_node_type()

void ED_init_custom_node_type ( blender::bke::bNodeType * ntype)

Definition at line 1100 of file drawnode.cc.

◆ ED_init_node_socket_type_virtual()

◆ ED_init_standard_node_socket_type()

◆ ED_node_clipboard_free()

void ED_node_clipboard_free ( )

Definition at line 523 of file clipboard.cc.

References blender::ed::space_node::NodeClipboard::clear().

Referenced by WM_exit_ex().

◆ ED_node_composit_default()

◆ ED_node_composite_job()

◆ ED_node_cursor_location_get()

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

Definition at line 229 of file space_node.cc.

References copy_v2_v2(), and SpaceNode::runtime.

◆ ED_node_cursor_location_set()

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

Definition at line 234 of file space_node.cc.

References copy_v2_v2(), and SpaceNode::runtime.

◆ ED_node_draw_snap()

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

◆ ED_node_grid_size()

float ED_node_grid_size ( )

Definition at line 142 of file node_draw.cc.

References NODE_GRID_STEP_SIZE.

Referenced by transform_snap_grid_init().

◆ ED_node_init_butfuncs()

◆ ED_node_is_compositor()

◆ ED_node_is_geometry()

◆ ED_node_is_shader()

◆ ED_node_is_texture()

◆ ED_node_post_apply_transform()

void ED_node_post_apply_transform ( bContext * C,
bNodeTree * ntree )

◆ ED_node_sample_set()

void ED_node_sample_set ( const float col[4])

◆ ED_node_set_active()

◆ ED_node_set_active_viewer_key()

◆ ED_node_set_tree_type()

void ED_node_set_tree_type ( SpaceNode * snode,
blender::bke::bNodeTreeType * typeinfo )

◆ ED_node_shader_default()

◆ ED_node_supports_preview()

bool ED_node_supports_preview ( SpaceNode * snode)

◆ ED_node_tag_update_id()

◆ ED_node_texture_default()

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

◆ ED_node_tree_depth()

int ED_node_tree_depth ( SpaceNode * snode)

Definition at line 163 of file space_node.cc.

References BLI_listbase_count(), and SpaceNode::treepath.

◆ ED_node_tree_get()

bNodeTree * ED_node_tree_get ( SpaceNode * snode,
int level )

◆ ED_node_tree_path_get()

void ED_node_tree_path_get ( SpaceNode * snode,
char * value )
Parameters
valueThe path output at least the size of ED_node_tree_path_length(snode) + 1.

Definition at line 193 of file space_node.cc.

References BLI_assert, ED_node_tree_path_length(), len, LISTBASE_FOREACH_INDEX, and SpaceNode::treepath.

◆ ED_node_tree_path_length()

int ED_node_tree_path_length ( SpaceNode * snode)

Definition at line 180 of file space_node.cc.

References length(), LISTBASE_FOREACH_INDEX, and SpaceNode::treepath.

Referenced by ED_node_tree_path_get().

◆ ED_node_tree_pop()

◆ ED_node_tree_propagate_change()

void ED_node_tree_propagate_change ( const bContext * C,
Main * bmain,
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.

Definition at line 492 of file node_edit.cc.

References BKE_ntree_update_main_tree(), CTX_wm_space_node(), DEG_id_tag_update(), SpaceNode::id, ID_RECALC_NTREE_OUTPUT, ID_RECALC_SYNC_TO_EVAL, params, and blender::ed::space_node::send_notifiers_after_tree_change().

Referenced by blender::ed::space_node::add_dragged_links_to_tree(), blender::ed::space_node::add_group_input_node_fn(), blender::ed::space_node::add_node(), blender::ed::space_node::add_node_group_asset(), blender::ed::space_node::add_reroute_exec(), blender::ed::space_node::add_static_node(), blender::ed::space_node::attribute_search_exec_fn(), blender::ed::space_node::clear_viewer_border_exec(), blender::ed::space_node::cut_links_exec(), blender::ed::space_node::detach_links_exec(), ED_node_set_active(), ED_object_assign_active_image(), blender::ed::curves::ensure_surface_deformation_node_exists(), blender::ed::space_node::viewer_linking::finalize_viewer_link(), blender::ed::space_node::link_drag_search_exec_fn(), 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_material_exec(), blender::ed::space_node::node_add_object_exec(), blender::ed::space_node::node_clipboard_paste_exec(), blender::ed::space_node::node_cryptomatte_add_socket_exec(), blender::ed::space_node::node_cryptomatte_remove_socket_exec(), blender::ed::space_node::node_deactivate_viewer_exec(), blender::ed::space_node::node_delete_exec(), blender::ed::space_node::node_delete_reconnect_exec(), blender::ed::space_node::node_duplicate_exec(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_group_separate_exec(), blender::ed::space_node::node_group_ungroup_exec(), blender::ed::space_node::node_insert_on_link_flags(), blender::ed::space_node::node_join_exec(), blender::ed::space_node::node_link_cancel(), blender::ed::space_node::node_make_link_exec(), blender::ed::space_node::node_mute_exec(), blender::ed::space_node::node_output_file_add_socket_exec(), blender::ed::space_node::node_output_file_move_active_socket_exec(), blender::ed::space_node::node_output_file_remove_active_socket_exec(), blender::ed::space_node::node_panel_toggle_button_cb(), blender::ed::space_node::node_preview_toggle_exec(), blender::ed::space_node::node_property_update_default(), blender::ed::space_node::node_read_viewlayers_exec(), blender::ed::space_node::node_socket_add_replace(), blender::ed::space_node::node_socket_disconnect(), blender::ed::space_node::node_socket_remove(), blender::ed::space_node::node_socket_toggle_exec(), blender::ed::outliner::outliner_delete_exec(), blender::ed::outliner::outliner_id_operation_exec(), blender::ed::outliner::outliner_lib_operation_exec(), paste_material_exec(), proj_paint_add_slot(), render_view_add_exec(), render_view_remove_exec(), blender::ed::transform::special_aftertrans_update__node(), blender::nodes::socket_items::ops::update_after_node_change(), blender::ed::space_node::viewer_border_exec(), and blender::ed::view3d::geometry_nodes_gizmos::WIDGETGROUP_geometry_nodes_refresh().

◆ ED_node_tree_push()

◆ ED_node_tree_start()

◆ ED_node_tree_update()

void ED_node_tree_update ( const bContext * C)

◆ ED_node_type_draw_color()

void ED_node_type_draw_color ( const char * idname,
float * r_color )

◆ ED_operatormacros_node()

◆ ED_space_node_color_sample()

◆ ED_space_node_get_position()

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