Blender
V3.3
|
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 } |
#define NODE_EDGE_PAN_MAX_SPEED 26 /* In UI units per second, slower than default. */ |
enum NodeBorder |
void ED_init_custom_node_socket_type | ( | struct bNodeSocketType * | stype | ) |
Definition at line 1179 of file drawnode.cc.
References bNodeSocketType::draw, and blender::ed::space_node::node_socket_button_label().
void ED_init_node_socket_type_virtual | ( | struct bNodeSocketType * | stype | ) |
Definition at line 1490 of file drawnode.cc.
References bNodeSocketType::draw, bNodeSocketType::draw_color, blender::ed::space_node::node_socket_button_label(), and blender::ed::space_node::node_socket_virtual_draw_color().
void ED_init_standard_node_socket_type | ( | struct bNodeSocketType * | stype | ) |
Definition at line 1481 of file drawnode.cc.
References bNodeSocketType::draw, bNodeSocketType::draw_color, bNodeSocketType::interface_draw, bNodeSocketType::interface_draw_color, blender::ed::space_node::std_node_socket_draw(), blender::ed::space_node::std_node_socket_draw_color(), blender::ed::space_node::std_node_socket_interface_draw(), and blender::ed::space_node::std_node_socket_interface_draw_color().
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().
void ED_node_composite_job | ( | const struct bContext * | C, |
struct bNodeTree * | nodetree, | ||
struct Scene * | scene_owner | ||
) |
scene_owner | is 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. |
refresh
callbacks, not direct! - use with care. Referenced by image_refresh(), and blender::ed::space_node::node_area_refresh().
Definition at line 200 of file space_node.cc.
References copy_v2_v2(), and SpaceNode::runtime.
void ED_node_draw_snap | ( | struct View2D * | v2d, |
const float | cent[2], | ||
float | size, | ||
NodeBorder | border, | ||
unsigned int | pos | ||
) |
Definition at line 2177 of file drawnode.cc.
References border, View2D::cur, GPU_PRIM_LINES, immBegin(), immEnd(), immVertex2f(), NODE_BOTTOM, NODE_LEFT, NODE_RIGHT, NODE_TOP, pos, size(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by drawSnapping().
Definition at line 87 of file node_draw.cc.
Referenced by initSnapSpatial().
Definition at line 1145 of file drawnode.cc.
References bNodeSocketType::draw, bNodeType::draw_buttons, bNodeType::draw_buttons_ex, bNodeSocketType::draw_color, bNodeSocketType::interface_draw, bNodeSocketType::interface_draw_color, blender::ed::space_node::node_common_set_butfunc(), blender::ed::space_node::node_composit_set_butfunc(), blender::ed::space_node::node_shader_set_butfunc(), blender::ed::space_node::node_socket_undefined_draw(), blender::ed::space_node::node_socket_undefined_draw_color(), blender::ed::space_node::node_socket_undefined_interface_draw(), blender::ed::space_node::node_socket_undefined_interface_draw_color(), blender::ed::space_node::node_template_properties_update(), blender::ed::space_node::node_texture_set_butfunc(), NODE_TYPES_BEGIN, NODE_TYPES_END, NodeSocketTypeUndefined, and NodeTypeUndefined.
Referenced by WM_init().
Definition at line 466 of file node_edit.cc.
References bNodeTreeType::idname, ntreeType_Composite, STREQ, and SpaceNode::tree_idname.
Referenced by blender::ed::space_node::composite_node_active(), blender::ed::space_node::composite_node_editable(), blender::ed::space_node::draw_nodespace_back_pix(), ED_screen_stereo3d_required(), ED_space_node_color_sample(), ED_space_node_get_position(), blender::ed::space_node::viewer_linking::get_default_viewer_type(), blender::ed::space_node::node_active_link_viewer_poll(), blender::ed::space_node::node_area_listener(), blender::ed::space_node::node_area_tag_recalc_auto_compositing(), blender::ed::space_node::node_area_tag_tree_recalc(), blender::ed::space_node::node_group_idname(), blender::ed::space_node::node_group_operator_editable(), blender::ed::space_node::sample_invoke(), and wm_draw_region_stereo_set().
Definition at line 481 of file node_edit.cc.
References bNodeTreeType::idname, ntreeType_Geometry, STREQ, and SpaceNode::tree_idname.
Referenced by blender::ed::space_node::node_active_link_viewer_poll(), blender::ed::space_node::node_area_listener(), blender::ed::space_node::node_group_idname(), and blender::ed::space_node::node_group_operator_editable().
Definition at line 471 of file node_edit.cc.
References bNodeTreeType::idname, ntreeType_Shader, STREQ, and SpaceNode::tree_idname.
Referenced by blender::ed::space_node::node_area_listener(), blender::ed::space_node::node_group_idname(), and blender::ed::space_node::node_group_operator_editable().
Definition at line 476 of file node_edit.cc.
References bNodeTreeType::idname, ntreeType_Texture, STREQ, and SpaceNode::tree_idname.
Referenced by blender::ed::space_node::node_area_listener(), blender::ed::space_node::node_group_idname(), and blender::ed::space_node::node_group_operator_editable().
Assumes link with NODE_LINKFLAG_HILITE set.
Definition at line 2432 of file node_relationships.cc.
References blender::compositor::area(), BKE_ntree_update_tag_link_changed(), blender::ed::space_node::ed_node_link_conditions(), ED_node_tree_propagate_change(), SpaceNode::edittree, bNodeLink::flag, SpaceNode::flag, bNodeLink::fromnode, bNodeLink::fromsock, blender::ed::space_node::get_main_socket(), NodeInsertOfsData::insert, bNodeTree::links, LISTBASE_FOREACH, NodeInsertOfsData::next, NODE_LINKFLAG_HILITE, NODE_REROUTE, nodeAddLink(), nodeRemLink(), ntree, NodeInsertOfsData::prev, SpaceNode::runtime, SNODE_SKIP_INSOFFSET, SOCK_IN, SOCK_OUT, bNodeLink::tonode, bNodeLink::tosock, bNodeSocket::type, bNode::type, bNodeTree::typeinfo, and bNodeTreeType::validate_link.
Referenced by special_aftertrans_update__node().
Test == 0, clear all intersect flags.
Definition at line 1948 of file node_relationships.cc.
References blender::compositor::area(), BKE_area_find_region_type(), BLI_rctf_isect_segment(), dist_squared_to_line_segment_v2(), blender::ed::space_node::ed_node_link_conditions(), SpaceNode::edittree, bNodeLink::flag, bNodeTree::links, LISTBASE_FOREACH, min_ff(), blender::ed::space_node::node_link_bezier_points(), blender::ed::space_node::node_link_is_hidden_or_dimmed(), NODE_LINK_RESOL, NODE_LINKFLAG_HILITE, RGN_TYPE_WINDOW, select(), and ARegion::v2d.
Referenced by flushTransNodes(), and special_aftertrans_update__node().
Referenced by special_aftertrans_update__node().
Definition at line 154 of file drawnode.cc.
References _sample_col, col, copy_v4_fl(), copy_v4_v4(), and SAMPLE_FLT_ISNONE.
Referenced by blender::ed::space_node::sample_apply(), and blender::ed::space_node::sample_exit().
void ED_node_set_active | ( | struct Main * | bmain, |
struct SpaceNode * | snode, | ||
struct bNodeTree * | ntree, | ||
struct bNode * | node, | ||
bool * | r_active_texture_changed | ||
) |
Definition at line 659 of file node_edit.cc.
References blender::compositor::area(), bScreen::areabase, BKE_image_ensure_viewer(), BKE_ntree_update_tag_active_output_changed(), CMP_NODE_COMPOSITE, CMP_NODE_SPLITVIEWER, CMP_NODE_VIEWER, ED_node_tree_propagate_change(), ED_space_image_set(), ED_spreadsheet_context_paths_set_geometry_node(), ELEM, ListBase::first, GEO_NODE_VIEWER, GPU_material_free(), GS, ID_IM, IMA_TYPE_COMPOSITE, IMA_TYPE_R_RESULT, image(), SpaceImage::image, LISTBASE_FOREACH, Main::materials, NC_IMAGE, NC_MATERIAL, ND_NODES, node, NODE_ACTIVE_TEXTURE, NODE_DO_OUTPUT, NODE_GROUP, NODE_GROUP_OUTPUT, bNodeTree::nodes, nodeSetActive(), ntree, NTREE_COMPOSIT, NTREE_GEOMETRY, NTREE_SHADER, NTREE_TEXTURE, ntreeHasTree(), SpaceImage::pin, SH_NODE_OUTPUT_LIGHT, SH_NODE_OUTPUT_LINESTYLE, SH_NODE_OUTPUT_MATERIAL, SH_NODE_OUTPUT_WORLD, SPACE_IMAGE, Image::type, bNodeTree::type, Main::wm, WM_main_add_notifier(), WM_window_get_active_screen(), and Main::worlds.
Referenced by blender::ed::space_node::node_add_node(), blender::nodes::node_geo_viewer_cc::node_gather_link_searches(), blender::ed::space_node::node_mouse_select(), blender::ed::space_node::node_select_single(), and template_texture_select().
Definition at line 187 of file space_node.cc.
References bNodeTree::active_viewer_key, if(), ListBase::last, SpaceNode::nodetree, bNodeTreePath::parent_key, and SpaceNode::treepath.
Referenced by ED_node_tree_pop(), ED_node_tree_push(), ED_node_tree_start(), blender::ed::space_node::node_mouse_select(), and blender::ed::space_node::node_select_single().
void ED_node_set_tree_type | ( | struct SpaceNode * | snode, |
struct bNodeTreeType * | typeinfo | ||
) |
Definition at line 456 of file node_edit.cc.
References BLI_strncpy(), bNodeTreeType::idname, and SpaceNode::tree_idname.
Referenced by blender::ed::space_node::node_space_subtype_set().
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().
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.
Referenced by widget_draw_node_link_socket().
Definition at line 117 of file node_draw.cc.
References DEG_id_tag_update(), GS, id, bNodeTree::id, ID_LA, ID_MA, ID_WO, ID::name, NC_LAMP, NC_MATERIAL, NC_OBJECT, NC_SCENE, NC_TEXTURE, NC_WORLD, ND_LIGHTING, ND_MODIFIER, ND_NODES, ND_SHADING, ND_WORLD, node_tree_from_ID(), ntree, NTREE_COMPOSIT, NTREE_GEOMETRY, NTREE_SHADER, NTREE_TEXTURE, bNodeTree::type, and WM_main_add_notifier().
Referenced by texture_changed().
Assumes nothing being done in ntree yet, sets the default in/out node. Called from shading buttons or header.
int ED_node_tree_depth | ( | struct SpaceNode * | snode | ) |
Definition at line 140 of file space_node.cc.
References BLI_listbase_count(), and SpaceNode::treepath.
Definition at line 145 of file space_node.cc.
References ListBase::last, bNodeTreePath::nodetree, bNodeTreePath::prev, and SpaceNode::treepath.
Referenced by blender::ed::space_node::node_group_separate_exec().
Definition at line 170 of file space_node.cc.
References LISTBASE_FOREACH_INDEX, and SpaceNode::treepath.
int ED_node_tree_path_length | ( | struct SpaceNode * | snode | ) |
Definition at line 157 of file space_node.cc.
References blender::math::length(), LISTBASE_FOREACH_INDEX, and SpaceNode::treepath.
Definition at line 118 of file space_node.cc.
References BLI_remlink(), ED_node_set_active_viewer_key(), SpaceNode::edittree, ListBase::first, if(), ListBase::last, MEM_freeN, NC_SCENE, ND_NODES, bNodeTreePath::nodetree, SpaceNode::treepath, and WM_main_add_notifier().
Referenced by blender::ed::space_node::node_group_edit_exec(), and blender::ed::space_node::node_group_separate_exec().
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.
C | Context if available. This can be null. |
bmain | Main whose data-blocks should be updated based on the changes. |
ntree | Under 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().
Definition at line 83 of file space_node.cc.
References BKE_node_instance_key(), BLI_addtail(), BLI_strncpy(), copy_v2_v2(), bNodeTreePath::display_name, ED_node_set_active_viewer_key(), SpaceNode::edittree, bNodeTree::id, id_us_ensure_real(), if(), ListBase::last, bNode::name, NC_SCENE, ND_NODES, NODE_INSTANCE_KEY_BASE, bNodeTreePath::node_name, bNodeTreePath::nodetree, ntree, bNodeTreePath::parent_key, SpaceNode::treepath, bNodeTree::view_center, bNodeTreePath::view_center, and WM_main_add_notifier().
Referenced by blender::ed::space_node::node_group_edit_exec(), blender::ed::space_node::node_group_insert_exec(), and blender::ed::space_node::node_group_make_exec().
void ED_node_tree_start | ( | struct SpaceNode * | snode, |
struct bNodeTree * | ntree, | ||
struct ID * | id, | ||
struct ID * | from | ||
) |
Definition at line 44 of file space_node.cc.
References BLI_addtail(), BLI_listbase_clear(), BLI_strncpy(), copy_v2_v2(), bNodeTreePath::display_name, ED_node_set_active_viewer_key(), SpaceNode::edittree, from, SpaceNode::from, id, bNodeTree::id, SpaceNode::id, id_us_ensure_real(), LISTBASE_FOREACH_MUTABLE, MEM_freeN, ID::name, NC_SCENE, ND_NODES, NODE_INSTANCE_KEY_BASE, bNodeTreePath::nodetree, SpaceNode::nodetree, ntree, NTREE_GEOMETRY, bNodeTreePath::parent_key, SpaceNode::treepath, bNodeTree::type, bNodeTree::view_center, bNodeTreePath::view_center, and WM_main_add_notifier().
Referenced by blender::ed::space_node::snode_set_context().
Referenced by blender::ed::space_node::new_node_tree_exec().
Definition at line 125 of file node_ops.cc.
References OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorTypeMacro::ptr, RNA_boolean_set(), WM_operatortype_append_macro(), and WM_operatortype_macro_define().
Referenced by ED_spacemacros_init().
bool ED_space_node_color_sample | ( | struct Main * | bmain, |
struct SpaceNode * | snode, | ||
struct ARegion * | region, | ||
const int | mval[2], | ||
float | r_col[3] | ||
) |
Returns color in linear space, matching ED_space_image_color_sample(). And here we've got recursion in the comments tips...
Definition at line 476 of file node_view.cc.
References BKE_image_acquire_ibuf(), BKE_image_ensure_viewer(), BKE_image_release_ibuf(), ImBuf::channels, CLAMP, copy_v3_v3(), ED_node_is_compositor(), SpaceNode::flag, float(), IMA_TYPE_COMPOSITE, IMB_colormanagement_colorspace_to_scene_linear_v3(), lock, ImBuf::rect, ImBuf::rect_colorspace, ImBuf::rect_float, ret, rgb_uchar_to_float(), SNODE_BACKDRAW, ARegion::winx, ARegion::winy, x, ImBuf::x, SpaceNode::xof, y, ImBuf::y, SpaceNode::yof, and SpaceNode::zoom.
Referenced by eyedropper_color_sample_fl().
bool ED_space_node_get_position | ( | struct Main * | bmain, |
struct SpaceNode * | snode, | ||
struct ARegion * | region, | ||
const int | mval[2], | ||
float | fpos[2] | ||
) |
Returns mouse position in image space.
Definition at line 449 of file node_view.cc.
References BKE_image_acquire_ibuf(), BKE_image_ensure_viewer(), BKE_image_release_ibuf(), ED_node_is_compositor(), SpaceNode::flag, float(), IMA_TYPE_COMPOSITE, lock, SNODE_BACKDRAW, ARegion::winx, ARegion::winy, ImBuf::x, SpaceNode::xof, ImBuf::y, SpaceNode::yof, and SpaceNode::zoom.
Referenced by eyedropper_cryptomatte_sample_fl().