Blender V5.0
blender::ed::space_node Namespace Reference

Namespaces

namespace  flat_item
namespace  viewer_linking

Classes

struct  ObjectAndModifier
struct  NestedTreePreviews
struct  NodeClipboardItemIDInfo
struct  NodeClipboardItem
struct  NodeClipboard
struct  GBatchNodesocket
struct  NodeLinkDrawConfig
struct  LinkDragSearchStorage
struct  RerouteCutsForSocket
struct  NodeStackAnimationData
struct  TreeDrawContext
struct  FlatNodeItem
struct  NamedAttributeTooltipArg
struct  FrameNodeLayout
struct  CompoJob
struct  NodeSizeWidget
struct  AttributeSearchData
struct  LayerSearchData
struct  GridSearchData
struct  NodeBBoxWidgetGroup
struct  NodeGlareWidgetGroup
struct  NodeCornerPinWidgetGroup
struct  WrapperNodeGroupMapping
struct  bNodeLinkDrag
struct  SpaceNode_Runtime
struct  LinkAndPosition
struct  NodeJoinState
struct  NodeDetachstate
struct  ShaderNodesPreviewJob
class  SocketTooltipBuilder
struct  NodeLinkItem
struct  NodeLinkArg
struct  NodeViewMove
struct  ImageSampleInfo

Typedefs

using SocketColorFn = void (*)(bContext *C, PointerRNA *ptr, PointerRNA *node_ptr, float *r_color)
Local Structs
using NodeSocketPair = std::pair<bNode *, bNodeSocket *>

Enumerations

enum  NodeResizeDirection {
  NODE_RESIZE_NONE = 0 , NODE_RESIZE_TOP = (1 << 0) , NODE_RESIZE_BOTTOM = (1 << 1) , NODE_RESIZE_RIGHT = (1 << 2) ,
  NODE_RESIZE_LEFT = (1 << 3)
}

Functions

void tree_update (const bContext *C)
void tag_update_id (ID *id)
float grid_size_get ()
void snode_set_context (const bContext &C)
void node_socket_draw (bNodeSocket *sock, const rcti *rect, const float color[4], float scale)
void std_node_socket_colors_get (int socket_type, float *r_color)
std::optional< nodes::FoundNestedNodeIDfind_nested_node_id_in_root (const SpaceNode &snode, const bNode &node)
std::optional< nodes::FoundNestedNodeIDfind_nested_node_id_in_root (const bNodeTree &root_tree, const ComputeContext *compute_context, const int node_id)
std::optional< ObjectAndModifierget_modifier_for_node_editor (const SpaceNode &snode)
bool node_editor_is_for_geometry_nodes_modifier (const SpaceNode &snode, const Object &object, const NodesModifierData &nmd)
const ComputeContextcompute_context_for_edittree (const SpaceNode &snode, bke::ComputeContextCache &compute_context_cache)
const ComputeContextcompute_context_for_edittree_socket (const SpaceNode &snode, bke::ComputeContextCache &compute_context_cache, const bNodeSocket &socket)
const ComputeContextcompute_context_for_edittree_node (const SpaceNode &snode, bke::ComputeContextCache &compute_context_cache, const bNode &node)
const ComputeContextcompute_context_for_zone (const bke::bNodeTreeZone &zone, bke::ComputeContextCache &compute_context_cache, const ComputeContext *parent_compute_context)
const ComputeContextcompute_context_for_zones (const Span< const bke::bNodeTreeZone * > zones, bke::ComputeContextCache &compute_context_cache, const ComputeContext *parent_compute_context)
void ui_template_node_asset_menu_items (uiLayout &layout, const bContext &C, StringRef catalog_path, const NodeAssetMenuOperatorType operator_type)
Map< int, bool > & node_can_sync_cache_get (SpaceNode &snode)
void node_tree_interface_draw (bContext &C, uiLayout &layout, bNodeTree &tree)
const char * node_socket_get_label (const bNodeSocket *socket, const char *panel_label=nullptr)
static bool node_add_menu_poll (const bContext *C, MenuType *)
static bool all_loading_finished ()
static asset::AssetItemTree build_catalog_tree (const bContext &C, const bNodeTree &node_tree)
static Set< StringRefget_builtin_menus (const int tree_type)
static void node_catalog_assets_draw (const bContext *C, Menu *menu)
static void node_unassigned_assets_draw (const bContext *C, Menu *menu)
static void root_catalogs_draw (const bContext *C, Menu *menu, const StringRefNull operator_id)
static void add_root_catalogs_draw (const bContext *C, Menu *menu)
static void swap_root_catalogs_draw (const bContext *C, Menu *menu)
MenuType catalog_assets_menu_type ()
MenuType unassigned_assets_menu_type ()
MenuType add_root_catalogs_menu_type ()
MenuType swap_root_catalogs_menu_type ()
static NodeClipboardget_node_clipboard ()
static void node_socket_button_label (bContext *, uiLayout *layout, PointerRNA *, PointerRNA *, const StringRef text)
static void node_buts_mix_rgb (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_buts_time (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_buts_colorramp (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_buts_curvevec (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_buts_curvefloat (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_buts_curvecol (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_buts_normal (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_buts_texture (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_buts_math (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_buts_combsep_color (uiLayout *layout, bContext *, PointerRNA *ptr)
NodeResizeDirection node_get_resize_direction (const SpaceNode &snode, const bNode *node, const int x, const int y)
static void node_draw_buttons_group (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_buts_frame_ex (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_common_set_butfunc (blender::bke::bNodeType *ntype)
static void node_buts_image_user (uiLayout *layout, bContext *C, PointerRNA *ptr, PointerRNA *imaptr, PointerRNA *iuserptr, const bool show_layer_selection, const bool show_color_management)
static void node_shader_buts_tex_image (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_shader_buts_tex_image_ex (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_shader_buts_tex_environment (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_shader_buts_tex_environment_ex (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_shader_buts_displacement (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_shader_buts_glossy (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_buts_output_shader (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_shader_buts_scatter (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_shader_set_butfunc (blender::bke::bNodeType *ntype)
static void node_buts_image_views (uiLayout *layout, bContext *, PointerRNA *ptr, PointerRNA *imaptr)
static void node_composit_buts_image (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_composit_buts_image_ex (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_composit_buts_huecorrect (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_composit_buts_combsep_color (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_composit_buts_cryptomatte_legacy (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_composit_buts_cryptomatte_legacy_ex (uiLayout *layout, bContext *, PointerRNA *)
static void node_composit_buts_cryptomatte (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_composit_set_butfunc (blender::bke::bNodeType *ntype)
static void node_texture_buts_bricks (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_texture_buts_proc (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_texture_buts_image (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_texture_buts_image_ex (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_texture_buts_output (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_texture_buts_combsep_color (uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_texture_set_butfunc (blender::bke::bNodeType *ntype)
template<int socket_type>
void std_node_socket_color_fn (bContext *, PointerRNA *, PointerRNA *, float *r_color)
static void std_node_socket_color_simple_fn (const bke::bNodeSocketType *type, float *r_color)
static bool socket_needs_attribute_search (bNode &node, bNodeSocket &socket)
static bool socket_needs_layer_search (const bNode &node, const bNodeSocket &socket)
static bool socket_needs_volume_grid_search (const bNode &node, const bNodeSocket &socket)
static void draw_gizmo_pin_icon (uiLayout *layout, PointerRNA *socket_ptr)
static void draw_node_socket_name_editable (uiLayout *layout, bNodeSocket *sock, const StringRef text)
static void draw_node_socket_without_value (uiLayout *layout, bNodeSocket *sock, const StringRef text)
static void std_node_socket_draw (bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *node_ptr, StringRef label)
static void std_node_socket_interface_draw (ID *id, bNodeTreeInterfaceSocket *interface_socket, bContext *, uiLayout *layout)
static void node_socket_virtual_draw_color (bContext *, PointerRNA *, PointerRNA *, float *r_color)
static void node_socket_virtual_draw_color_simple (const bke::bNodeSocketType *, float *r_color)
void draw_nodespace_back_pix (const bContext &C, ARegion &region, SpaceNode &snode, bNodeInstanceKey parent_key)
float2 socket_link_connection_location (const bNode &node, const bNodeSocket &socket, const bNodeLink &link)
static void calculate_inner_link_bezier_points (std::array< float2, 4 > &points)
static std::array< float2, 4 > node_link_bezier_points (const bNodeLink &link)
static bool node_link_draw_is_visible (const View2D &v2d, const std::array< float2, 4 > &points)
void node_link_bezier_points_evaluated (const bNodeLink &link, std::array< float2, NODE_LINK_RESOL+1 > &coords)
static void link_drag_search_listen_fn (const wmRegionListenerParams *params, void *arg)
static void add_reroute_node_fn (nodes::LinkSearchOpParams &params)
static void add_group_input_node_fn (nodes::LinkSearchOpParams &params)
static void add_existing_group_input_fn (nodes::LinkSearchOpParams &params, const bNodeTreeInterfaceSocket &interface_socket)
static void search_link_ops_for_asset_metadata (const bNodeTree &node_tree, const bNodeSocket &socket, const asset_system::AssetRepresentation &asset, Vector< SocketLinkOperation > &search_link_ops)
static void gather_search_link_ops_for_all_assets (const bContext &C, const bNodeTree &node_tree, const bNodeSocket &socket, Vector< SocketLinkOperation > &search_link_ops)
static void gather_socket_link_operations (const bContext &C, bNodeTree &node_tree, const bNodeSocket &socket, Vector< SocketLinkOperation > &search_link_ops)
static void link_drag_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
static bNodeget_new_linked_node (bNodeSocket &socket, const Span< bNode * > new_nodes)
static void link_drag_search_exec_fn (bContext *C, void *arg1, void *arg2)
static void link_drag_search_free_fn (void *arg)
static uiBlockcreate_search_popup_block (bContext *C, ARegion *region, void *arg_op)
void invoke_node_link_drag_add_menu (bContext &C, bNode &node, bNodeSocket &socket, const float2 &cursor)
static void context_path_add_object_data (Vector< ui::ContextPathItem > &path, Object &object)
static std::function< void(bContext &)> tree_path_handle_func (int i)
static void context_path_add_top_level_shader_node_tree (const SpaceNode &snode, Vector< ui::ContextPathItem > &path, StructRNA &rna_type, void *ptr)
static void context_path_add_node_tree_and_node_groups (const SpaceNode &snode, Vector< ui::ContextPathItem > &path, const bool skip_base=false)
static void get_context_path_node_shader (const bContext &C, SpaceNode &snode, Vector< ui::ContextPathItem > &path)
static void get_context_path_node_compositor (const bContext &C, SpaceNode &snode, Vector< ui::ContextPathItem > &path)
static void get_context_path_node_geometry (const bContext &C, SpaceNode &snode, Vector< ui::ContextPathItem > &path)
Vector< ui::ContextPathItemcontext_path_for_space_node (const bContext &C)
static bNodeTreenode_tree_from_ID (ID *id)
static void node_socket_add_tooltip_in_node_editor (const bNodeSocket &sock, uiLayout &layout)
static bool compare_node_depth (const bNode *a, const bNode *b)
void tree_draw_order_update (bNodeTree &ntree)
Array< bNode * > tree_draw_order_calc_nodes (bNodeTree &ntree)
Array< bNode * > tree_draw_order_calc_nodes_reversed (bNodeTree &ntree)
static Array< uiBlock * > node_uiblocks_init (const bContext &C, const Span< bNode * > nodes)
float2 node_to_view (const float2 &co)
static rctf node_to_rect (const bNode &node)
void node_to_updated_rect (const bNode &node, rctf &r_rect)
float2 node_from_view (const float2 &co)
static bool is_node_panels_supported (const bNode &node)
static bool node_update_basis_buttons (const bContext &C, bNodeTree &ntree, bNode &node, blender::FunctionRef< nodes::DrawNodeLayoutFn > draw_buttons, uiBlock &block, int &dy)
static void draw_socket_layout (TreeDrawContext &tree_draw_ctx, const bContext &C, uiLayout &layout, bNodeSocket &socket, bNodeTree &ntree, bNode &node, PointerRNA &node_ptr, PointerRNA &socket_ptr, const char *panel_label)
static bool node_update_basis_socket (TreeDrawContext &tree_draw_ctx, const bContext &C, bNodeTree &ntree, bNode &node, const char *panel_label, bNodeSocket *input_socket, bNodeSocket *output_socket, uiBlock &block, const int &locx, int &locy)
static void determine_potentially_visible_panels_recursive (const bNode &node, const nodes::PanelDeclaration &panel_decl, MutableSpan< bool > r_result)
static void determine_potentially_visible_panels (const bNode &node, MutableSpan< bool > r_result)
static void determine_visible_panels_impl_recursive (const bNode &node, const nodes::PanelDeclaration &panel_decl, const Span< bool > potentially_visible_states, MutableSpan< bool > r_result)
static void determine_visible_panels_impl (const bNode &node, const Span< bool > potentially_visible_states, MutableSpan< bool > r_result)
static void determine_visible_panels (const bNode &node, MutableSpan< bool > r_visibility_states)
static void add_flat_items_for_socket (bNode &node, const nodes::SocketDeclaration &socket_decl, const nodes::PanelDeclaration *panel_decl, const nodes::SocketDeclaration *prev_socket_decl, Vector< FlatNodeItem > &r_items)
static void add_flat_items_for_separator (Vector< FlatNodeItem > &r_items)
static void add_flat_items_for_layout (const bNode &node, const nodes::LayoutDeclaration &layout_decl, Vector< FlatNodeItem > &r_items)
static void add_flat_items_for_panel (bNode &node, const nodes::PanelDeclaration &panel_decl, const Span< bool > panel_visibility, Vector< FlatNodeItem > &r_items)
static Vector< FlatNodeItemmake_flat_node_items (bNode &node)
static float get_margin_empty ()
static float get_margin_from_top (const Span< FlatNodeItem > items)
static float get_margin_to_bottom (const Span< FlatNodeItem > items)
static float get_margin_between_elements (const Span< FlatNodeItem > items, const int next_index)
static void mark_sockets_collapsed_recursive (bNode &node, const int node_left_x, const nodes::PanelDeclaration &visible_panel_decl, const nodes::PanelDeclaration &panel_decl)
static void update_collapsed_sockets_recursive (bNode &node, const int node_left_x, const nodes::PanelDeclaration &panel_decl)
static void update_collapsed_sockets (bNode &node, const int node_left_x)
static void tag_final_panel (bNode &node, const Span< FlatNodeItem > items)
static void node_update_basis_from_declaration (TreeDrawContext &tree_draw_ctx, const bContext &C, bNodeTree &ntree, bNode &node, uiBlock &block, const int locx, int &locy)
static void node_update_basis_from_socket_lists (TreeDrawContext &tree_draw_ctx, const bContext &C, bNodeTree &ntree, bNode &node, uiBlock &block, const int locx, int &locy)
static void node_update_basis (const bContext &C, TreeDrawContext &tree_draw_ctx, bNodeTree &ntree, bNode &node, uiBlock &block)
static void node_update_collapsed (bNode &node, uiBlock &block)
static int node_get_colorid (TreeDrawContext &tree_draw_ctx, const bNode &node)
static void node_draw_mute_line (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNode &node)
static void node_socket_tooltip_set (uiBlock &block, const int socket_index_in_tree, const float2 location, const float2 size)
static void node_socket_outline_color_get (const bool selected, const int socket_type, float r_outline_color[4])
void node_socket_color_get (const bContext &C, const bNodeTree &ntree, PointerRNA &node_ptr, const bNodeSocket &sock, float r_color[4])
void node_socket_add_tooltip (const bNodeTree &ntree, const bNodeSocket &sock, uiLayout &layout)
static float node_tree_view_scale (const SpaceNode &snode)
static bool draw_node_details (const SpaceNode &snode)
static void node_draw_preview_background (rctf *rect)
static void node_draw_preview (const Scene *scene, ImBuf *preview, const rctf *prv)
static void node_toggle_button_cb (bContext *C, void *node_argv, void *op_argv)
static void node_draw_shadow (const SpaceNode &snode, const bNode &node, const float radius, const float alpha)
static void node_draw_node_group_indicator (const SpaceNode &snode, const bNode &node, const rctf &rect, const float radius, const float color[4])
static void node_draw_socket (const bContext &C, const bNodeTree &ntree, const bNode &node, PointerRNA &node_ptr, uiBlock &block, const bNodeSocket &sock, const float outline_thickness, const bool selected, const float aspect)
static void node_draw_sockets (const bContext &C, uiBlock &block, const SpaceNode &snode, const bNodeTree &ntree, const bNode &node)
static void node_panel_toggle_button_cb (bContext *C, void *panel_state_argv, void *ntree_argv)
static void node_draw_panels_background (const bNode &node)
static bool panel_has_only_inactive_inputs (const bNode &node, const nodes::PanelDeclaration &panel_decl)
static void node_draw_panels (bNodeTree &ntree, const bNode &node, uiBlock &block)
static nodes::NodeWarningType node_error_highest_priority (Span< geo_log::NodeWarning > warnings)
static std::string node_errors_tooltip_fn (const Span< geo_log::NodeWarning > warnings)
static uiButadd_error_message_button (uiBlock &block, const rctf &rect, const int icon, float &icon_offset, const char *tooltip=nullptr)
static void node_add_error_message_button (const TreeDrawContext &tree_draw_ctx, const bNodeTree &ntree, const bNode &node, uiBlock &block, const rctf &rect, float &icon_offset)
static std::optional< std::chrono::nanoseconds > geo_node_get_execution_time (const TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
static bNodeInstanceKey current_node_instance_key (const SpaceNode &snode, const bNode &node)
static std::optional< std::chrono::nanoseconds > compositor_accumulate_frame_node_execution_time (const TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
static std::optional< std::chrono::nanoseconds > compositor_node_get_execution_time (const TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
static std::optional< std::chrono::nanoseconds > node_get_execution_time (const TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
static std::string node_get_execution_time_label (TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
static std::string named_attribute_tooltip (bContext *, void *argN, const StringRef)
static NodeExtraInfoRow row_from_used_named_attribute (const Map< StringRefNull, geo_log::NamedAttributeUsage > &usage_by_attribute_name)
static std::optional< NodeExtraInfoRownode_get_accessed_attributes_row (TreeDrawContext &tree_draw_ctx, const bNode &node)
static std::optional< NodeExtraInfoRownode_get_execution_time_label_row (TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
static void node_get_compositor_extra_info (TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node, Vector< NodeExtraInfoRow > &rows)
static Vector< NodeExtraInfoRownode_get_extra_info (const bContext &C, TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node)
static void node_draw_extra_info_row (const bNode &node, uiBlock &block, const rctf &rect, const int row, const NodeExtraInfoRow &extra_info_row)
static void node_draw_extra_info_panel_back (const bNode &node, const rctf &extra_info_rect)
static void node_draw_extra_info_panel (const bContext &C, TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node, ImBuf *preview, uiBlock &block)
static short get_viewer_shortcut_icon (const bNode &node)
static bool node_undefined_or_unsupported (const bNodeTree &node_tree, const bNode &node)
static ColorTheme4f node_header_color_get (const bNodeTree &ntree, const bNode &node, const int color_id)
static void node_header_custom_tooltip (const bNode &node, uiBut &but)
static void node_draw_basis (const bContext &C, TreeDrawContext &tree_draw_ctx, const View2D &v2d, const SpaceNode &snode, bNodeTree &ntree, const bNode &node, uiBlock &block, bNodeInstanceKey key)
static void node_draw_collapsed (const bContext &C, TreeDrawContext &tree_draw_ctx, const View2D &v2d, const SpaceNode &snode, bNodeTree &ntree, bNode &node, uiBlock &block)
int node_get_resize_cursor (NodeResizeDirection directions)
static const bNodefind_node_under_cursor (SpaceNode &snode, const float2 &cursor)
void node_set_cursor (wmWindow &win, ARegion &region, SpaceNode &snode, const float2 &cursor)
static void count_multi_input_socket_links (bNodeTree &ntree, SpaceNode &snode)
static FrameNodeLayout frame_node_layout (const bNode &frame_node)
static rctf calc_node_frame_dimensions (const bContext &C, TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, bNode &node)
static void reroute_node_prepare_for_draw (bNode &node)
static void node_update_nodetree (const bContext &C, TreeDrawContext &tree_draw_ctx, bNodeTree &ntree, Span< bNode * > nodes, Span< uiBlock * > blocks)
static void frame_node_draw_label (TreeDrawContext &tree_draw_ctx, const bNode &node, const SpaceNode &snode)
static void frame_node_draw_background (const ARegion &region, const SpaceNode &snode, const bNode &node)
static void frame_node_draw_outline (const ARegion &region, const SpaceNode &snode, const bNode &node)
static void frame_node_draw_overlay (const bContext &C, TreeDrawContext &tree_draw_ctx, const ARegion &region, const SpaceNode &snode, const bNode &node, uiBlock &block)
static Set< const bNodeSocket * > find_sockets_on_active_gizmo_paths (const bContext &C, const SpaceNode &snode, bke::ComputeContextCache &compute_context_cache)
static const bNodereroute_node_get_linked_reroute (const bNode &reroute)
static StringRef reroute_node_get_auto_label (TreeDrawContext &tree_draw_ctx, const bNode &src_reroute)
static void reroute_node_draw_body (const bContext &C, const SpaceNode &snode, const bNodeTree &ntree, const bNode &node, uiBlock &block, const bool selected)
static void reroute_node_draw_label (TreeDrawContext &tree_draw_ctx, const SpaceNode &snode, const bNode &node, uiBlock &block)
static void reroute_node_draw (const bContext &C, TreeDrawContext &tree_draw_ctx, ARegion &region, const SpaceNode &snode, bNodeTree &ntree, const bNode &node, uiBlock &block)
static void node_draw (const bContext &C, TreeDrawContext &tree_draw_ctx, ARegion &region, const SpaceNode &snode, bNodeTree &ntree, bNode &node, uiBlock &block, bNodeInstanceKey key)
static void add_rect_corner_positions (Vector< float2 > &positions, const rctf &rect)
static void find_bounds_by_zone_recursive (const SpaceNode &snode, const bNodeTreeZone &zone, const Span< const bNodeTreeZone * > all_zones, MutableSpan< Vector< float2 > > r_bounds_by_zone)
static void node_draw_zones_and_frames (const ARegion &region, const SpaceNode &snode, const bNodeTree &ntree)
static void draw_frame_overlays (const bContext &C, TreeDrawContext &tree_draw_ctx, const ARegion &region, const SpaceNode &snode, const bNodeTree &ntree, Span< uiBlock * > blocks)
static std::optional< float2find_visible_center_of_link (const View2D &v2d, const bNodeLink &link, const float radius, const float region_padding)
static void draw_link_errors (const bContext &C, SpaceNode &snode, const bNodeLink &link, const Span< bke::NodeLinkError > errors, uiBlock &invalid_links_block)
static uiBlockinvalid_links_uiblock_init (const bContext &C)
static void node_draw_nodetree (const bContext &C, TreeDrawContext &tree_draw_ctx, ARegion &region, SpaceNode &snode, bNodeTree &ntree, Span< bNode * > nodes, Span< uiBlock * > blocks, bNodeInstanceKey parent_key)
static void draw_tree_path (const bContext &C, ARegion &region)
static void snode_setup_v2d (SpaceNode &snode, ARegion &region, const float2 &center)
static Map< const bNode *, const bNode * > find_menu_switch_sources_for_index_switch_nodes (const SpaceNode &snode, const bNodeTree &ntree, bke::ComputeContextCache &compute_context_cache)
static void draw_nodetree (const bContext &C, ARegion &region, bNodeTree &ntree, bNodeInstanceKey parent_key)
static void draw_background_color (const SpaceNode &snode)
void node_draw_space (const bContext &C, ARegion &region)
 BLI_STATIC_ASSERT (std::is_trivially_destructible_v< AttributeSearchData >, "")
static Vector< const GeometryAttributeInfo * > get_attribute_info_from_context (const bContext &C, AttributeSearchData &data)
static void attribute_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
static eCustomDataType data_type_in_attribute_input_node (const eCustomDataType type)
static void attribute_search_exec_fn (bContext *C, void *data_v, void *item_v)
void node_geometry_add_attribute_search_button (const bContext &, const bNode &node, PointerRNA &socket_ptr, uiLayout &layout, const StringRef placeholder)
 BLI_STATIC_ASSERT (std::is_trivially_destructible_v< LayerSearchData >, "")
static Vector< const std::string * > get_layer_names_from_context (const bContext &C, LayerSearchData &data)
static void layer_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
static void layer_search_exec_fn (bContext *C, void *data_v, void *item_v)
void node_geometry_add_layer_search_button (const bContext &, const bNode &node, PointerRNA &socket_ptr, uiLayout &layout, const StringRef placeholder)
 BLI_STATIC_ASSERT (std::is_trivially_destructible_v< GridSearchData >, "")
static Vector< const VolumeGridInfo * > get_grid_names_from_context (const bContext &C, GridSearchData &data)
static StringRef grid_data_type_string (const VolumeGridType type)
static bool grid_search_item_add (uiSearchItems &items, const VolumeGridInfo &item)
static void volume_grid_search_add_items (const StringRef str, const bool can_create_grid, const Span< const VolumeGridInfo * > grids, uiSearchItems &seach_items, const bool is_first)
static void grid_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
static void grid_search_exec_fn (bContext *C, void *data_v, void *item_v)
void node_geometry_add_volume_grid_search_button (const bContext &, const bNode &node, PointerRNA &socket_ptr, uiLayout &layout, const StringRef placeholder)
 ENUM_OPERATORS (NodeResizeDirection, NODE_RESIZE_LEFT)
float2 space_node_group_offset (const SpaceNode &snode)
void node_operatortypes ()
void node_keymap (wmKeyConfig *keyconf)
void NODE_OT_backimage_sample (wmOperatorType *ot)
void UI_node_socket_draw_cache_flush ()
void NODE_OT_sockets_sync (wmOperatorType *ot)
void build_socket_tooltip (uiTooltipData &tip_data, bContext &C, uiBut *but, const bNodeTree &tree, const bNodeSocket &socket)
void node_tree_interface_panel_register (ARegionType *art)
static void clear_picking_highlight (ListBase *links)
static bool has_workbench_in_texture_color (const wmWindowManager *wm, const Scene *scene, const Object *ob)
static Vector< bNode * > get_nodes_to_sync (bContext &C, PointerRNA *ptr)
static wmOperatorStatus sockets_sync_exec (bContext *C, wmOperator *op)
static std::string sockets_sync_get_description (bContext *C, wmOperatorType *ot, PointerRNA *ptr)
static void node_link_item_init (NodeLinkItem &item)
static bool node_link_item_compare (bNode *node, NodeLinkItem *item)
static void node_link_item_apply (bNodeTree *ntree, bNode *node, NodeLinkItem *item)
static void node_tag_recursive (bNode *node)
static void node_clear_recursive (bNode *node)
static void node_remove_linked (Main *bmain, bNodeTree *ntree, bNode *rem_node)
static void node_socket_disconnect (Main *bmain, bNodeTree *ntree, bNode *node_to, bNodeSocket *sock_to)
static void node_socket_remove (Main *bmain, bNodeTree *ntree, bNode *node_to, bNodeSocket *sock_to)
static void node_socket_add_replace (const bContext *C, bNodeTree *ntree, bNode *node_to, bNodeSocket *sock_to, int type, NodeLinkItem *item)
static Vector< NodeLinkItemui_node_link_items (NodeLinkArg *arg, int in_out, std::optional< NodeDeclaration > &r_node_decl)
static void ui_node_link (bContext *C, void *arg_p, void *event_p)
static void ui_node_sock_name (const bNodeTree *ntree, bNodeSocket *sock, char name[UI_MAX_NAME_STR])
static int ui_compatible_sockets (int typeA, int typeB)
static int ui_node_item_name_compare (const void *a, const void *b)
static bool ui_node_item_special_poll (const bNodeTree *, const bke::bNodeType *ntype)
static void ui_node_menu_column (NodeLinkArg *arg, int nclass, const char *cname)
static void node_menu_column_foreach_cb (void *calldata, int nclass, const StringRefNull name)
static void ui_template_node_link_menu (bContext *C, uiLayout *layout, void *but_p)
static void ui_node_draw_input (uiLayout &layout, bContext &C, bNodeTree &ntree, bNode &node, bNodeSocket &input, int depth, const char *panel_label)
static void ui_node_draw_recursive (uiLayout &layout, bContext &C, bNodeTree &ntree, bNode &node, const nodes::PanelDeclaration &panel_decl, const int depth)
static void ui_node_draw_node (uiLayout &layout, bContext &C, bNodeTree &ntree, bNode &node, int depth)
static bool node_tree_interface_panel_poll (const bContext *C, PanelType *)
static void node_tree_interface_panel_draw (const bContext *C, Panel *panel)
static void sample_apply (bContext *C, wmOperator *op, const wmEvent *event)
static void sample_exit (bContext *C, wmOperator *op)
static wmOperatorStatus sample_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus sample_modal (bContext *C, wmOperator *op, const wmEvent *event)
static void sample_cancel (bContext *C, wmOperator *op)
static std::optional< const ComputeContext * > compute_context_for_tree_path (const SpaceNode &snode, bke::ComputeContextCache &compute_context_cache, const ComputeContext *parent_compute_context)
static const ComputeContextget_node_editor_root_compute_context (const SpaceNode &snode, bke::ComputeContextCache &compute_context_cache)
static SpaceLinknode_create (const ScrArea *, const Scene *)
static void node_free (SpaceLink *sl)
static void node_init (wmWindowManager *, ScrArea *)
static void node_exit (wmWindowManager *wm, ScrArea *area)
static bool any_node_uses_id (const bNodeTree *ntree, const ID *id)
static void node_area_tag_tree_recalc (SpaceNode *snode, ScrArea *area)
static void node_area_listener (const wmSpaceTypeListenerParams *params)
static void node_area_refresh (const bContext *C, ScrArea *area)
static SpaceLinknode_duplicate (SpaceLink *sl)
static void node_buttons_region_init (wmWindowManager *wm, ARegion *region)
static void node_buttons_region_draw (const bContext *C, ARegion *region)
static void node_toolbar_region_init (wmWindowManager *wm, ARegion *region)
static void node_toolbar_region_draw (const bContext *C, ARegion *region)
static void node_cursor (wmWindow *win, ScrArea *area, ARegion *region)
static void node_main_region_init (wmWindowManager *wm, ARegion *region)
static void node_main_region_draw (const bContext *C, ARegion *region)
static bool node_group_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
static bool node_object_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
static bool node_collection_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
static bool node_id_im_drop_poll (bContext *, wmDrag *drag, const wmEvent *)
static bool node_mask_drop_poll (bContext *, wmDrag *drag, const wmEvent *)
static bool node_material_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
static bool node_color_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
static bool node_import_file_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
static bool node_socket_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event)
static bool node_panel_drop_poll (bContext *C, wmDrag *drag, const wmEvent *event)
static void node_group_drop_copy (bContext *C, wmDrag *drag, wmDropBox *drop)
static void node_id_drop_copy (bContext *C, wmDrag *drag, wmDropBox *drop)
static void node_id_im_drop_copy (bContext *C, wmDrag *drag, wmDropBox *drop)
static void node_import_file_drop_copy (bContext *, wmDrag *drag, wmDropBox *drop)
static void node_socket_drop_copy (bContext *, wmDrag *drag, wmDropBox *drop)
static void node_panel_drop_copy (bContext *, wmDrag *drag, wmDropBox *drop)
static std::string node_socket_drop_tooltip (bContext *, wmDrag *drag, const int[2], wmDropBox *)
static std::string node_panel_drop_tooltip (bContext *, wmDrag *drag, const int[2], wmDropBox *)
static void node_dropboxes ()
static void node_header_region_init (wmWindowManager *, ARegion *region)
static void node_header_region_draw (const bContext *C, ARegion *region)
static void node_region_listener (const wmRegionListenerParams *params)
static int node_context (const bContext *C, const char *member, bContextDataResult *result)
static void node_widgets ()
static void node_id_remap (ID *old_id, ID *new_id, SpaceNode *snode)
static void node_id_remap (ScrArea *, SpaceLink *slink, const blender::bke::id::IDRemapper &mappings)
static void node_foreach_id (SpaceLink *space_link, LibraryForeachIDData *data)
static int node_space_subtype_get (ScrArea *area)
static void node_space_subtype_set (ScrArea *area, int value)
static void node_space_subtype_item_extend (bContext *C, EnumPropertyItem **item, int *totitem)
static blender::StringRefNull node_space_name_get (const ScrArea *area)
static int node_space_icon_get (const ScrArea *area)
static void node_space_blend_read_data (BlendDataReader *reader, SpaceLink *sl)
static void node_space_blend_write (BlendWriter *writer, SpaceLink *sl)
static void node_asset_shelf_region_init (wmWindowManager *wm, ARegion *region)
Public Node Selection API
VectorSet< bNode * > get_selected_nodes (bNodeTree &node_tree)
rctf node_frame_rect_inside (const SpaceNode &snode, const bNode &node)
bool node_or_socket_isect_event (const bContext &C, const wmEvent &event)
bNodenode_under_mouse_get (const SpaceNode &snode, const float2 mouse)
bool node_deselect_all (bNodeTree &node_tree)
void node_socket_select (bNode *node, bNodeSocket &sock)
void node_socket_deselect (bNode *node, bNodeSocket &sock, bool deselect_node)
void node_deselect_all_input_sockets (bNodeTree &node_tree, bool deselect_nodes)
void node_deselect_all_output_sockets (bNodeTree &node_tree, bool deselect_nodes)
void node_select_paired (bNodeTree &node_tree)
static bool is_event_over_node_or_socket (const bContext &C, const wmEvent &event)
static bool node_frame_select_isect_mouse (const SpaceNode &snode, const bNode &node, const float2 &mouse)
static bool is_position_over_node_or_socket (SpaceNode &snode, ARegion &region, const float2 &mouse)
static void node_socket_toggle (bNode *node, bNodeSocket &sock, bool deselect_node)
Automatic Node Insert on Dragging
void node_insert_on_link_flags_set (SpaceNode &snode, const ARegion &region, bool attach_enabled, bool is_new_node)
void node_insert_on_frame_flag_set (bContext &C, SpaceNode &snode, const int2 &cursor)
void node_insert_on_frame_flag_clear (SpaceNode &snode)
void node_insert_on_link_flags (Main &bmain, SpaceNode &snode, bool is_new_node)
void node_insert_on_link_flags_clear (bNodeTree &node_tree)
static bNodeget_selected_node_for_insertion (bNodeTree &node_tree)
static bool node_can_be_inserted_on_link (bNodeTree &tree, bNode &node, const bNodeLink &link)
Node Socket Drawing
void node_draw_nodesocket (const rctf *rect, const float color_inner[4], const float color_outline[4], float outline_thickness, int shape, float aspect)
static GBatchNodesocketg_batch_nodesocket ()
static gpu::Batch * nodesocket_batch_init ()
static void nodesocket_cache_flush ()
void nodesocket_batch_start ()
void nodesocket_batch_end ()
static void draw_node_socket_batch (const NodeSocketShaderParameters &socket_params)
Preview job management
void free_previews (wmWindowManager &wm, SpaceNode &snode)
static void update_needed_flag (NestedTreePreviews &tree_previews, const bNodeTree &nt, ePreviewType preview_type)
static void shader_preview_startjob (void *customdata, wmJobWorkerStatus *worker_status)
static void shader_preview_free (void *customdata)
Preview rendering
ImBufnode_preview_acquire_ibuf (bNodeTree &ntree, NestedTreePreviews &tree_previews, const bNode &node)
void node_release_preview_ibuf (NestedTreePreviews &tree_previews)
static bNodeSocketnode_find_preview_socket (bNodeTree &ntree, bNode &node)
static bool socket_use_aov (const bNodeSocket *socket)
static bool node_use_aov (bNodeTree &ntree, const bNode *node)
static ImBufget_image_from_viewlayer_and_pass (RenderResult &rr, const char *layer_name, const char *pass_name)
static void connect_nested_node_to_node (const Span< bNodeTreePath * > treepath, bNode &nested_node, bNodeSocket &nested_socket, bNode &final_node, bNodeSocket &final_socket, const char *route_name)
static void connect_node_to_surface_output (const Span< bNodeTreePath * > treepath, NodeSocketPair nodesocket, bNode &output_node)
static void connect_nodes_to_aovs (const Span< bNodeTreePath * > treepath, const Span< NodeSocketPair > nodesocket_span)
static bool nodetree_previews_break (void *spv)
static bool prepare_viewlayer_update (void *pvl_data, ViewLayer *vl, Depsgraph *depsgraph)
static void all_nodes_preview_update (void *npv, RenderResult *rr, rcti *)
static void preview_render (ShaderNodesPreviewJob &job_data)
Compute Context functions
NestedTreePreviewsget_nested_previews (const bContext &C, SpaceNode &snode)
static void ensure_nodetree_previews (const bContext &C, NestedTreePreviews &tree_previews, Material &material, ListBase &treepath)
static std::optional< ComputeContextHashget_compute_context_hash_for_node_editor (const SpaceNode &snode)
Copy
static wmOperatorStatus node_clipboard_copy_exec (bContext *C, wmOperator *)
void NODE_OT_clipboard_copy (wmOperatorType *ot)
Paste
static wmOperatorStatus node_clipboard_paste_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_clipboard_paste_invoke (bContext *C, wmOperator *op, const wmEvent *event)
void NODE_OT_clipboard_paste (wmOperatorType *ot)
Init Draw Callbacks For All Tree Types

Only called on node initialization, once.

static void node_property_update_default (Main *bmain, Scene *, PointerRNA *ptr)
static void node_socket_template_properties_update (blender::bke::bNodeType *ntype, blender::bke::bNodeSocketTemplate *stemp)
static void node_template_properties_update (blender::bke::bNodeType *ntype)
static void node_socket_undefined_draw (bContext *, uiLayout *layout, PointerRNA *, PointerRNA *, StringRef)
static void node_socket_undefined_draw_color (bContext *, PointerRNA *, PointerRNA *, float *r_color)
static void node_socket_undefined_draw_color_simple (const bke::bNodeSocketType *, float *r_color)
static void node_socket_undefined_interface_draw (ID *, bNodeTreeInterfaceSocket *, bContext *, uiLayout *layout)
Utilities
static void position_node_based_on_mouse (bNode &node, const float2 &location)
bNodeadd_node (const bContext &C, const StringRef idname, const float2 &location)
bNodeadd_static_node (const bContext &C, int type, const float2 &location)
static void node_templateID_assign (bContext *C, bNodeTree *node_tree)
Add Reroute Operator
std::optional< float2link_path_intersection (const bNodeLink &link, const Span< float2 > path)
static wmOperatorStatus add_reroute_exec (bContext *C, wmOperator *op)
void NODE_OT_add_reroute (wmOperatorType *ot)
Add Node Group Operator
static bool node_group_add_poll (const bNodeTree &node_tree, const bNodeTree &node_group, ReportList &reports)
static wmOperatorStatus node_add_group_exec (bContext *C, wmOperator *op)
static bool node_add_group_poll (bContext *C)
static bool node_swap_group_poll (bContext *C)
static wmOperatorStatus node_add_group_invoke (bContext *C, wmOperator *op, const wmEvent *event)
void NODE_OT_add_group (wmOperatorType *ot)
Add Node Group Asset Operator
static bool add_node_group_asset (const bContext &C, const asset_system::AssetRepresentation &asset, ReportList &reports)
static wmOperatorStatus node_add_group_asset_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus node_swap_group_asset_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static std::string node_add_group_asset_get_description (bContext *C, wmOperatorType *, PointerRNA *ptr)
void NODE_OT_add_group_asset (wmOperatorType *ot)
void NODE_OT_swap_group_asset (wmOperatorType *ot)
Add Node Object Operator
static wmOperatorStatus node_add_object_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_add_object_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static bool node_add_object_poll (bContext *C)
void NODE_OT_add_object (wmOperatorType *ot)
Add Node Collection Operator
static wmOperatorStatus node_add_collection_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_add_collection_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static bool node_add_collection_poll (bContext *C)
void NODE_OT_add_collection (wmOperatorType *ot)
Add Image Node Operator
static bool node_add_image_poll (bContext *C)
static wmOperatorStatus node_add_nodes_modal (bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus node_add_image_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_add_image_invoke (bContext *C, wmOperator *op, const wmEvent *event)
void NODE_OT_add_image (wmOperatorType *ot)
Add Mask Node Operator
static bool node_add_mask_poll (bContext *C)
static wmOperatorStatus node_add_mask_exec (bContext *C, wmOperator *op)
void NODE_OT_add_mask (wmOperatorType *ot)
Add Material Operator
static wmOperatorStatus node_add_material_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_add_material_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static bool node_add_material_poll (bContext *C)
void NODE_OT_add_material (wmOperatorType *ot)
Add Import Node Operator
static wmOperatorStatus node_add_import_node_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_add_import_node_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static bool node_add_import_node_poll (bContext *C)
void NODE_OT_add_import_node (wmOperatorType *ot)
Add Group Input Node Operator
static wmOperatorStatus node_add_group_input_node_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_add_group_input_node_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static bool node_add_group_input_node_poll (bContext *C)
void NODE_OT_add_group_input_node (wmOperatorType *ot)
Add Color Operator
static wmOperatorStatus node_add_color_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_add_color_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static bool node_add_color_poll (bContext *C)
void NODE_OT_add_color (wmOperatorType *ot)
New Node Tree Operator
static bNodeTreenew_node_tree_impl (bContext *C, StringRef treename, StringRef idname)
static wmOperatorStatus new_node_tree_exec (bContext *C, wmOperator *op)
static const EnumPropertyItemnew_node_tree_type_itemf (bContext *, PointerRNA *, PropertyRNA *, bool *r_free)
void NODE_OT_new_node_tree (wmOperatorType *ot)
New Compositing Node Tree Operator
static wmOperatorStatus new_compositing_node_group_exec (bContext *C, wmOperator *op)
static wmOperatorStatus new_compositing_node_group_invoke (bContext *C, wmOperator *op, const wmEvent *)
void NODE_OT_new_compositing_node_group (wmOperatorType *ot)
Duplicate Compositing Node Tree Operator
static wmOperatorStatus duplicate_compositing_node_group_exec (bContext *C, wmOperator *)
void NODE_OT_duplicate_compositing_node_group (wmOperatorType *ot)
New Compositor Sequencer Node Group Operator
static void initialize_compositor_sequencer_node_group (const bContext *C, bNodeTree &ntree)
static wmOperatorStatus new_compositor_sequencer_node_group_exec (bContext *C, wmOperator *op)
void NODE_OT_new_compositor_sequencer_node_group (wmOperatorType *operator_type)
Composite Job Manager
float node_socket_calculate_height (const bNodeSocket &socket)
float2 node_link_calculate_multi_input_position (const float2 &socket_position, const int index, const int total_inputs)
static bool compo_breakjob (void *cjv)
static void compo_statsdrawjob (void *cjv, const char *)
static void compo_redrawjob (void *cjv)
static void compo_freejob (void *cjv)
static void compo_initjob (void *cjv)
static void compo_updatejob (void *)
static void compo_progressjob (void *cjv, float progress)
static void compo_startjob (void *cjv, wmJobWorkerStatus *worker_status)
static void compo_canceljob (void *cjv)
static void compo_completejob (void *cjv)
Composite Poll & Utility Functions
bool composite_node_active (bContext *C)
bool composite_node_editable (bContext *C)
Node Generic
static bool socket_is_occluded (const float2 &location, const bNode &node_the_socket_belongs_to, const Span< bNode * > sorted_nodes)
Node Hidden Sockets
bool node_has_hidden_sockets (bNode *node)
void node_set_hidden_sockets (bNode *node, int set)
bool node_is_previewable (const SpaceNode &snode, const bNodeTree &ntree, const bNode &node)
static bool cursor_isect_multi_input_socket (const float2 &cursor, const bNodeSocket &socket)
bNodeSocketnode_find_indicated_socket (SpaceNode &snode, ARegion &region, const float2 &cursor, const eNodeSocketInOut in_out)
Node Link Dimming
float node_link_dim_factor (const View2D &v2d, const bNodeLink &link)
bool node_link_is_hidden_or_dimmed (const View2D &v2d, const bNodeLink &link)
Node Duplicate Operator
static void node_duplicate_reparent_recursive (bNodeTree *ntree, const Map< bNode *, bNode * > &node_map, bNode *node)
void remap_node_pairing (bNodeTree &dst_tree, const Map< const bNode *, bNode * > &node_map)
static wmOperatorStatus node_duplicate_exec (bContext *C, wmOperator *op)
void NODE_OT_duplicate (wmOperatorType *ot)
static wmOperatorStatus node_read_viewlayers_exec (bContext *C, wmOperator *)
void NODE_OT_read_viewlayers (wmOperatorType *ot)
wmOperatorStatus node_render_changed_exec (bContext *C, wmOperator *)
void NODE_OT_render_changed (wmOperatorType *ot)
Node Collapse Operator
static void node_flag_toggle_exec (SpaceNode *snode, int toggle_flag, const bool tag_update=false)
static wmOperatorStatus node_collapse_toggle_exec (bContext *C, wmOperator *)
void NODE_OT_collapse_toggle (wmOperatorType *ot)
static wmOperatorStatus node_preview_toggle_exec (bContext *C, wmOperator *)
static bool node_previewable (bContext *C)
void NODE_OT_preview_toggle (wmOperatorType *ot)
static wmOperatorStatus node_activate_viewer_exec (bContext *C, wmOperator *)
void NODE_OT_activate_viewer (wmOperatorType *ot)
static wmOperatorStatus test_inline_shader_nodes_exec (bContext *C, wmOperator *)
void NODE_OT_test_inlining_shader_nodes (wmOperatorType *ot)
static wmOperatorStatus node_deactivate_viewer_exec (bContext *C, wmOperator *)
void NODE_OT_deactivate_viewer (wmOperatorType *ot)
static wmOperatorStatus node_toggle_viewer_exec (bContext *C, wmOperator *)
void NODE_OT_toggle_viewer (wmOperatorType *ot)
static wmOperatorStatus node_options_toggle_exec (bContext *C, wmOperator *)
void NODE_OT_options_toggle (wmOperatorType *ot)
static wmOperatorStatus node_socket_toggle_exec (bContext *C, wmOperator *)
void NODE_OT_hide_socket_toggle (wmOperatorType *ot)
Node Mute Operator
static wmOperatorStatus node_mute_exec (bContext *C, wmOperator *)
void NODE_OT_mute_toggle (wmOperatorType *ot)
Node Delete Operator
static wmOperatorStatus node_delete_exec (bContext *C, wmOperator *)
void NODE_OT_delete (wmOperatorType *ot)
Node Delete with Reconnect Operator
static wmOperatorStatus node_delete_reconnect_exec (bContext *C, wmOperator *)
void NODE_OT_delete_reconnect (wmOperatorType *ot)
Node Copy Node Color Operator
static wmOperatorStatus node_copy_color_exec (bContext *C, wmOperator *)
void NODE_OT_node_copy_color (wmOperatorType *ot)
Node Shader Script Update
static bool node_shader_script_update_poll (bContext *C)
static wmOperatorStatus node_shader_script_update_exec (bContext *C, wmOperator *op)
void NODE_OT_shader_script_update (wmOperatorType *ot)
Node Viewer Border
static void viewer_border_corner_to_backdrop (SpaceNode *snode, ARegion *region, int x, int y, int backdrop_width, int backdrop_height, float *fx, float *fy)
static wmOperatorStatus viewer_border_exec (bContext *C, wmOperator *op)
void NODE_OT_viewer_border (wmOperatorType *ot)
static wmOperatorStatus clear_viewer_border_exec (bContext *C, wmOperator *)
void NODE_OT_clear_viewer_border (wmOperatorType *ot)
Cryptomatte Add Socket
static wmOperatorStatus node_cryptomatte_add_socket_exec (bContext *C, wmOperator *)
void NODE_OT_cryptomatte_layer_add (wmOperatorType *ot)
Cryptomatte Remove Socket
static wmOperatorStatus node_cryptomatte_remove_socket_exec (bContext *C, wmOperator *)
void NODE_OT_cryptomatte_layer_remove (wmOperatorType *ot)
Backdrop Gizmo
static void gizmo_node_backdrop_prop_matrix_get (const wmGizmo *, wmGizmoProperty *gz_prop, void *value_p)
static void gizmo_node_backdrop_prop_matrix_set (const wmGizmo *, wmGizmoProperty *gz_prop, const void *value_p)
static bool WIDGETGROUP_node_transform_poll (const bContext *C, wmGizmoGroupType *)
static void WIDGETGROUP_node_transform_setup (const bContext *, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_transform_refresh (const bContext *C, wmGizmoGroup *gzgroup)
void NODE_GGT_backdrop_transform (wmGizmoGroupType *gzgt)
Crop Gizmo
static void gizmo_node_bbox_update (NodeBBoxWidgetGroup *bbox_group)
static void node_input_to_rect (const bNode *node, const float2 &dims, const float2 offset, rctf *r_rect)
static void node_input_from_rect (bNode *node, const rctf *rect, const float2 &dims, const float2 &offset)
static void gizmo_node_crop_prop_matrix_get (const wmGizmo *gz, wmGizmoProperty *gz_prop, void *value_p)
static void gizmo_node_crop_prop_matrix_set (const wmGizmo *gz, wmGizmoProperty *gz_prop, const void *value_p)
static bool WIDGETGROUP_node_crop_poll (const bContext *C, wmGizmoGroupType *)
static void WIDGETGROUP_node_crop_setup (const bContext *, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_crop_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_crop_refresh (const bContext *C, wmGizmoGroup *gzgroup)
void NODE_GGT_backdrop_crop (wmGizmoGroupType *gzgt)
Box Mask
static void gizmo_node_box_mask_prop_matrix_get (const wmGizmo *gz, wmGizmoProperty *gz_prop, void *value_p)
static void gizmo_node_box_mask_prop_matrix_set (const wmGizmo *gz, wmGizmoProperty *gz_prop, const void *value_p)
static bool WIDGETGROUP_node_box_mask_poll (const bContext *C, wmGizmoGroupType *)
static void WIDGETGROUP_node_box_mask_setup (const bContext *, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_bbox_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_mask_refresh (const bContext *C, wmGizmoGroup *gzgroup)
void NODE_GGT_backdrop_box_mask (wmGizmoGroupType *gzgt)
Ellipse Mask
static bool WIDGETGROUP_node_ellipse_mask_poll (const bContext *C, wmGizmoGroupType *)
static void WIDGETGROUP_node_ellipse_mask_setup (const bContext *, wmGizmoGroup *gzgroup)
void NODE_GGT_backdrop_ellipse_mask (wmGizmoGroupType *gzgt)
Glare
static bool WIDGETGROUP_node_glare_poll (const bContext *C, wmGizmoGroupType *)
static void WIDGETGROUP_node_glare_setup (const bContext *, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_glare_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_glare_refresh (const bContext *C, wmGizmoGroup *gzgroup)
void NODE_GGT_backdrop_glare (wmGizmoGroupType *gzgt)
Corner Pin
static bool WIDGETGROUP_node_corner_pin_poll (const bContext *C, wmGizmoGroupType *)
static void WIDGETGROUP_node_corner_pin_setup (const bContext *, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_corner_pin_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_corner_pin_refresh (const bContext *C, wmGizmoGroup *gzgroup)
void NODE_GGT_backdrop_corner_pin (wmGizmoGroupType *gzgt)
Split
static bool WIDGETGROUP_node_split_poll (const bContext *C, wmGizmoGroupType *)
static void WIDGETGROUP_node_split_setup (const bContext *, wmGizmoGroup *gzgroup)
static void gizmo_node_split_prop_matrix_get (const wmGizmo *gz, wmGizmoProperty *gz_prop, void *value_p)
static void gizmo_node_split_prop_matrix_set (const wmGizmo *gz, wmGizmoProperty *gz_prop, const void *value_p)
static void WIDGETGROUP_node_split_refresh (const bContext *C, wmGizmoGroup *gzgroup)
void NODE_GGT_backdrop_split (wmGizmoGroupType *gzgt)
Edit Group Operator
static wmOperatorStatus node_group_edit_exec (bContext *C, wmOperator *op)
void NODE_OT_group_edit (wmOperatorType *ot)
Enter group at cursor, or exit when not hovering any node.
static wmOperatorStatus node_group_enter_exit_invoke (bContext *C, wmOperator *, const wmEvent *event)
void NODE_OT_group_enter_exit (wmOperatorType *ot)
Ungroup Operator
static AnimationBasePathChangeanimation_basepath_change_new (const StringRef src_basepath, const StringRef dst_basepath)
static void animation_basepath_change_free (AnimationBasePathChange *basepath_change)
static void update_nested_node_refs_after_ungroup (bNodeTree &ntree, const bNodeTree &ngroup, const bNode &gnode, const Map< int32_t, int32_t > &node_identifier_map)
static void node_group_ungroup (Main *bmain, bNodeTree *ntree, bNode *gnode)
static wmOperatorStatus node_group_ungroup_exec (bContext *C, wmOperator *)
void NODE_OT_group_ungroup (wmOperatorType *ot)
Make Group Operator
static VectorSet< bNode * > get_nodes_to_group (bNodeTree &node_tree, bNode *group_node)
static bool node_group_make_test_selected (bNodeTree &ntree, const VectorSet< bNode * > &nodes_to_group, const StringRef ntree_idname, ReportList &reports)
static void get_min_max_of_nodes (const Span< bNode * > nodes, const bool use_size, float2 &min, float2 &max)
static const bNodeSocketfind_socket_to_use_for_interface (const bNodeTree &node_tree, const bNodeSocket &socket)
static bool prefer_node_for_interface_name (const bNode &node)
static bNodeTreeInterfaceSocketadd_interface_from_socket (const bNodeTree &original_tree, bNodeTree &tree_for_interface, const bNodeSocket &socket)
static void update_nested_node_refs_after_moving_nodes_into_group (bNodeTree &ntree, bNodeTree &group, bNode &gnode, const Map< int32_t, int32_t > &node_identifier_map)
static void node_group_make_insert_selected (const bContext &C, bNodeTree &ntree, bNode *gnode, const VectorSet< bNode * > &nodes_to_move)
static bNodenode_group_make_from_nodes (const bContext &C, bNodeTree &ntree, const VectorSet< bNode * > &nodes_to_group, const StringRef ntype, const StringRef ntreetype)
static void add_node_group_interface_from_declaration_recursive (bNodeTree &group, const bNode &src_node, const nodes::ItemDeclaration &item_decl, bNodeTreeInterfacePanel *parent, WrapperNodeGroupMapping &r_mapping)
static bNodeTreenode_group_make_wrapper (const bContext &C, const bNodeTree &src_tree, const bNode &src_node, WrapperNodeGroupMapping &r_mapping)
static bNodenode_group_make_from_node_declaration (bContext &C, bNodeTree &ntree, bNode &src_node, const StringRef node_idname)
static wmOperatorStatus node_group_make_exec (bContext *C, wmOperator *op)
void NODE_OT_group_make (wmOperatorType *ot)
Group Insert Operator
static wmOperatorStatus node_group_insert_exec (bContext *C, wmOperator *op)
void NODE_OT_group_insert (wmOperatorType *ot)
Set Default Group Width Operator
static bool node_default_group_width_set_poll (bContext *C)
static wmOperatorStatus node_default_group_width_set_exec (bContext *C, wmOperator *)
void NODE_OT_default_group_width_set (wmOperatorType *ot)
Select (Cursor Pick) Operator
void node_select_single (bContext &C, bNode &node)
void NODE_OT_select (wmOperatorType *ot)
static const bNodeSocketfind_socket_at_mouse_y (const Span< const bNodeSocket * > sockets, const float view_y)
static void activate_interface_socket (bNodeTree &tree, bNodeTreeInterfaceSocket &io_socket)
static void handle_group_input_node_selection (bNodeTree &tree, const bNode &group_input_node, const float2 &cursor)
static void handle_group_output_node_selection (bNodeTree &tree, const bNode &group_output_node, const float2 &cursor)
static bool node_mouse_select (bContext *C, wmOperator *op, const int2 mval, const SelectPick_Params &params)
static wmOperatorStatus node_select_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
(De)select All Operator
void NODE_OT_select_all (wmOperatorType *ot)
static bool any_node_selected (const bNodeTree &node_tree)
static wmOperatorStatus node_select_all_exec (bContext *C, wmOperator *op)
Select Linked To Operator
void NODE_OT_select_linked_to (wmOperatorType *ot)
static wmOperatorStatus node_select_linked_to_exec (bContext *C, wmOperator *)
Select Linked From Operator
void NODE_OT_select_linked_from (wmOperatorType *ot)
static wmOperatorStatus node_select_linked_from_exec (bContext *C, wmOperator *)
Box Select Operator
void NODE_OT_select_box (wmOperatorType *ot)
static wmOperatorStatus node_box_select_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_box_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
Circle Select Operator
void NODE_OT_select_circle (wmOperatorType *ot)
static wmOperatorStatus node_circleselect_exec (bContext *C, wmOperator *op)
Lasso Select Operator
void NODE_OT_select_lasso (wmOperatorType *ot)
static wmOperatorStatus node_lasso_select_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static bool do_lasso_select_node (bContext *C, const Span< int2 > mcoords, eSelectOp sel_op)
static wmOperatorStatus node_lasso_select_exec (bContext *C, wmOperator *op)
Select Same Type Step Operator
void NODE_OT_select_same_type_step (wmOperatorType *ot)
static bool nodes_are_same_type_for_select (const bNode &a, const bNode &b)
static wmOperatorStatus node_select_same_type_step_exec (bContext *C, wmOperator *op)
Find Node by Name Operator
void NODE_OT_find_node (wmOperatorType *ot)
static std::string node_find_create_node_label (const bNodeTree &ntree, const bNode &node)
static std::string node_find_create_group_input_label (const bNode &node, const bNodeSocket &socket)
static std::string node_find_create_string_value (const bNode &node, const StringRef str)
static std::string node_find_create_data_block_value (const bNode &node, const ID &id)
static void node_find_update_fn (const bContext *C, void *, const char *str, uiSearchItems *items, const bool)
static void node_find_exec_fn (bContext *C, void *, void *arg2)
static uiBlocknode_find_menu (bContext *C, ARegion *region, void *arg_optype)
static wmOperatorStatus node_find_node_invoke (bContext *C, wmOperator *op, const wmEvent *)
View All Operator
bool space_node_view_flag (bContext &C, SpaceNode &snode, ARegion &region, int node_flag, int smooth_viewtx)
void NODE_OT_view_all (wmOperatorType *ot)
static wmOperatorStatus node_view_all_exec (bContext *C, wmOperator *op)
View Selected Operator
void NODE_OT_view_selected (wmOperatorType *ot)
static wmOperatorStatus node_view_selected_exec (bContext *C, wmOperator *op)
Background Image Operators
void NODE_OT_backimage_move (wmOperatorType *ot)
static wmOperatorStatus snode_bg_viewmove_modal (bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus snode_bg_viewmove_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static void snode_bg_viewmove_cancel (bContext *, wmOperator *op)
Background Image Zoom
void NODE_OT_backimage_zoom (wmOperatorType *ot)
static wmOperatorStatus backimage_zoom_exec (bContext *C, wmOperator *op)
Background Image Fit
void NODE_OT_backimage_fit (wmOperatorType *ot)
static wmOperatorStatus backimage_fit_exec (bContext *C, wmOperator *)
Add Node
void update_multi_input_indices_for_removed_links (bNode &node)
static bNodeLink create_drag_link (bNode &node, bNodeSocket &socket)
static void pick_link (bNodeLinkDrag &nldrag, SpaceNode &snode, bNode *node, bNodeLink &link_to_pick)
static void pick_input_link_by_link_intersect (const bContext &C, wmOperator &op, bNodeLinkDrag &nldrag, const float2 &cursor)
static bool socket_is_available (const bNodeTree *ntree, bNodeSocket *sock, const bool allow_used)
static bNodeSocketbest_socket_output (bNodeTree *ntree, bNode *node, bNodeSocket *sock_target, const bool allow_multiple)
static Vector< bNodeSocket * > get_available_sorted_inputs (const bNodeTree *ntree, const bNode *node, const bool only_unlinked)
static bool snode_autoconnect_input (bContext &C, SpaceNode &snode, bNode *node_fr, bNodeSocket *sock_fr, bNode *node_to, bNodeSocket *sock_to, int replace)
static void sort_multi_input_socket_links_with_drag (bNodeSocket &socket, bNodeLink &drag_link, const float2 &cursor)
static void snode_autoconnect (bContext &C, SpaceNode &snode, const bool allow_multiple, const bool replace)
Mute Links Operator
bool all_links_muted (const bNodeSocket &socket)
void NODE_OT_links_mute (wmOperatorType *ot)
static wmOperatorStatus mute_links_exec (bContext *C, wmOperator *op)
Node Insert Offset Operator
bNodeSocketget_main_socket (bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out)
void NODE_OT_insert_offset (wmOperatorType *ot)
static int get_main_socket_priority (const bNodeSocket *socket)
static bool node_parents_offset_flag_enable_cb (bNode *parent, void *)
static void node_offset_apply (bNode &node, const float offset_x)
static bool node_link_insert_offset_chain_cb (bNode *fromnode, bNode *tonode, void *userdata, const bool reversed)
static void node_link_insert_offset_ntree (NodeInsertOfsData *iofsd, ARegion *region, const int mouse_xy[2], const bool right_alignment)
static wmOperatorStatus node_insert_offset_modal (bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus node_insert_offset_invoke (bContext *C, wmOperator *op, const wmEvent *event)
Make Link Operator
void NODE_OT_link_make (wmOperatorType *ot)
static wmOperatorStatus node_make_link_exec (bContext *C, wmOperator *op)
Cut Link Operator
void NODE_OT_links_cut (wmOperatorType *ot)
static wmOperatorStatus cut_links_exec (bContext *C, wmOperator *op)
Detach Links Operator
void NODE_OT_links_detach (wmOperatorType *ot)
static wmOperatorStatus detach_links_exec (bContext *C, wmOperator *)
Set Parent Operator
void NODE_OT_parent_set (wmOperatorType *ot)
static wmOperatorStatus node_parent_set_exec (bContext *C, wmOperator *)
Join Nodes in Frame Operator
void NODE_OT_join (wmOperatorType *ot)
static void node_join_attach_recursive (bNodeTree &ntree, MutableSpan< NodeJoinState > join_states, bNode *node, bNode *frame, const VectorSet< bNode * > &selected_nodes)
static Vector< const bNode * > get_sorted_node_parents (const bNode &node)
static const bNodefind_common_parent_node (const Span< const bNode * > nodes)
static wmOperatorStatus node_join_in_frame_exec (bContext *C, wmOperator *)
static wmOperatorStatus node_join_in_frame_invoke (bContext *C, wmOperator *op, const wmEvent *event)
Attach Operator
void NODE_OT_attach (wmOperatorType *ot)
static bNodenode_find_frame_to_attach (ARegion &region, bNodeTree &ntree, const int2 mouse_xy)
static bool can_attach_node_to_frame (const bNode &node, const bNode &frame)
static wmOperatorStatus node_attach_invoke (bContext *C, wmOperator *, const wmEvent *event)
Detach Operator
void NODE_OT_detach (wmOperatorType *ot)
static void node_detach_recursive (bNodeTree &ntree, MutableSpan< NodeDetachstate > detach_states, bNode *node)
static wmOperatorStatus node_detach_exec (bContext *C, wmOperator *)
Join Nodes Operator
void NODE_OT_join_nodes (wmOperatorType *ot)
static void join_group_inputs (bNodeTree &tree, VectorSet< bNode * > group_inputs, bNode *active_node)
static wmOperatorStatus node_join_nodes_exec (bContext *C, wmOperator *op)
Link to Viewer Node Operator
void NODE_OT_link_viewer (wmOperatorType *ot)
static wmOperatorStatus node_active_link_viewer_exec (bContext *C, wmOperator *)
static bool node_active_link_viewer_poll (bContext *C)
Preview scene
static Materialduplicate_material (const Material &mat)
static Scenepreview_prepare_scene (const Main *bmain, const Scene *scene_orig, Main *pr_main, Material *mat_copy, ePreviewType preview_type)
Local Functions
static bool space_node_active_view_poll (bContext *C)
static bool space_node_composite_active_view_poll (bContext *C)
Sample Backdrop Operator
static void sample_draw (const bContext *C, ARegion *region, void *arg_info)

Variables

static const float virtual_node_socket_color [4] = {0.2, 0.2, 0.2, 1.0}
static const float std_node_socket_colors [][4]
static const SocketColorFn std_node_socket_color_funcs []
static const float virtual_node_socket_outline_color [4] = {0.5, 0.5, 0.5, 1.0}

Node Size Widget Operator

enum class  NodeResizeAction : int { Begin = 0 , Cancel = 1 , SnapInvertOn = 2 , SnapInvertOff = 3 }
static void node_resize_init (bContext *C, wmOperator *op, const float2 &cursor, const bNode *node, NodeResizeDirection dir)
static void node_resize_exit (bContext *C, wmOperator *op, bool cancel)
wmKeyMapnode_resize_modal_keymap (wmKeyConfig *keyconf)
static float nearest_node_grid_coord (float co)
static wmOperatorStatus node_resize_modal (bContext *C, wmOperator *op, const wmEvent *event)
static wmOperatorStatus node_resize_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static void node_resize_cancel (bContext *C, wmOperator *op)
void NODE_OT_resize (wmOperatorType *ot)

Separate Operator

enum  eNodeGroupSeparateType { NODE_GS_COPY , NODE_GS_MOVE }
static const EnumPropertyItem node_group_separate_types []
static bool node_group_separate_selected (Main &bmain, bNodeTree &ntree, bNodeTree &ngroup, const float2 &offset, const bool make_copy)
static wmOperatorStatus node_group_separate_exec (bContext *C, wmOperator *op)
static wmOperatorStatus node_group_separate_invoke (bContext *C, wmOperator *, const wmEvent *)
void NODE_OT_group_separate (wmOperatorType *ot)

Add Link Operator

enum class  NodeLinkAction : int { Begin = 0 , Cancel = 1 , Swap = 2 , Confirm = 3 }
void NODE_OT_link (wmOperatorType *ot)
wmKeyMapnode_link_modal_keymap (wmKeyConfig *keyconf)
static bool dragged_links_are_detached (const bNodeLinkDrag &nldrag)
static bool should_create_drag_link_search_menu (const bNodeTree &node_tree, const bNodeLinkDrag &nldrag)
static bool need_drag_link_tooltip (const bNodeTree &node_tree, const bNodeLinkDrag &nldrag)
static void draw_draglink_tooltip (const bContext *, ARegion *, void *arg)
static void draw_draglink_tooltip_activate (const ARegion &region, bNodeLinkDrag &nldrag)
static void draw_draglink_tooltip_deactivate (const ARegion &region, bNodeLinkDrag &nldrag)
static int node_socket_count_links (const bNodeTree &ntree, const bNodeSocket &socket)
static bNodeSocketnode_find_linkable_socket (const bNodeTree &ntree, const bNode *node, bNodeSocket *socket_to_match)
static void displace_links (bNodeTree *ntree, const bNode *node, bNodeLink *inserted_link)
static void node_displace_existing_links (bNodeLinkDrag &nldrag, bNodeTree &ntree)
static void node_swap_links (bNodeLinkDrag &nldrag, bNodeTree &ntree)
static void node_remove_existing_links_if_needed (bNodeLinkDrag &nldrag, bNodeTree &ntree)
static void add_dragged_links_to_tree (bContext &C, bNodeLinkDrag &nldrag)
static void node_link_cancel (bContext *C, wmOperator *op)
static void node_link_find_socket (bContext &C, wmOperator &op, const float2 &cursor)
static wmOperatorStatus node_link_modal (bContext *C, wmOperator *op, const wmEvent *event)
static void remove_unavailable_links (bNodeTree &tree, bNodeSocket &socket)
static std::unique_ptr< bNodeLinkDragnode_link_init (ARegion &region, SpaceNode &snode, const float2 cursor, const bool detach)
static wmOperatorStatus node_link_invoke (bContext *C, wmOperator *op, const wmEvent *event)

Select Grouped Operator

enum  { NODE_SELECT_GROUPED_TYPE = 0 , NODE_SELECT_GROUPED_COLOR = 1 , NODE_SELECT_GROUPED_PREFIX = 2 , NODE_SELECT_GROUPED_SUFIX = 3 }
void NODE_OT_select_grouped (wmOperatorType *ot)
static bool node_select_grouped_type (bNodeTree &node_tree, bNode &node_act)
static bool node_select_grouped_color (bNodeTree &node_tree, bNode &node_act)
static bool node_select_grouped_name (bNodeTree &node_tree, bNode &node_act, const bool from_right)
static wmOperatorStatus node_select_grouped_exec (bContext *C, wmOperator *op)

Node Link Drawing

static float arrow_verts [3][2] = {{-1.0f, 1.0f}, {0.0f, 0.0f}, {-1.0f, -1.0f}}
static float arrow_expand_axis [3][2] = {{0.7071f, 0.7071f}, {M_SQRT2, 0.0f}, {0.7071f, -0.7071f}}
static float mute_verts [3][2] = {{0.7071f, 1.0f}, {0.7071f, 0.0f}, {0.7071f, -1.0f}}
static float mute_expand_axis [3][2] = {{1.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, -0.0f}}
struct { 
   gpu::Batch *   blender::ed::space_node::batch 
   gpu::StorageBuf *   blender::ed::space_node::link_buf 
   uint   blender::ed::space_node::count 
   bool   blender::ed::space_node::enabled 
   NodeLinkData   blender::ed::space_node::data [NODELINK_GROUP_SIZE
g_batch_link
static void nodelink_batch_reset ()
static void set_nodelink_vertex (gpu::VertBuf *vbo, uint uv_id, uint pos_id, uint exp_id, uint v, const float uv[2], const float pos[2], const float exp[2])
static void nodelink_batch_init ()
static char nodelink_get_color_id (int th_col)
static void nodelink_batch_draw (const SpaceNode &snode)
void nodelink_batch_start (const SpaceNode &)
void nodelink_batch_end (const SpaceNode &snode)
static void nodelink_batch_add_link (const SpaceNode &snode, const std::array< float2, 4 > &points, const NodeLinkDrawConfig &draw_config)
static void node_draw_link_end_marker (const float2 center, const float radius, const ColorTheme4f &color)
static void node_draw_link_end_markers (const bNodeLink &link, const NodeLinkDrawConfig &draw_config, const std::array< float2, 4 > &points, const bool outline)
static bool node_link_is_field_link (const SpaceNode &snode, const bNodeLink &link)
static bool node_link_is_gizmo_link (const SpaceNode &snode, const bNodeLink &link)
static NodeLinkDrawConfig nodelink_get_draw_config (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNodeLink &link, const int th_col1, const int th_col2, const int th_col3, const bool selected)
static void node_draw_link_bezier_ex (const SpaceNode &snode, const NodeLinkDrawConfig &draw_config, const std::array< float2, 4 > &points)
void node_draw_link_bezier (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNodeLink &link, const int th_col1, const int th_col2, const int th_col3, const bool selected)
void node_draw_link (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNodeLink &link, const bool selected)
std::array< float2, 4 > node_link_bezier_points_dragged (const SpaceNode &snode, const bNodeLink &link)
void node_draw_link_dragged (const bContext &C, const View2D &v2d, const SpaceNode &snode, const bNodeLink &link)

Local Utilities

static const float2 GIZMO_NODE_DEFAULT_DIMS {64.0f, 64.0f}
static void node_gizmo_calc_matrix_space (const SpaceNode *snode, const ARegion *region, float matrix_space[4][4])
static void node_gizmo_calc_matrix_space_with_image_dims (const SpaceNode *snode, const ARegion *region, const float2 &image_dims, const float2 &image_offset, float matrix_space[4][4])
static bool node_gizmo_is_set_visible (const bContext *C)
static float2 node_gizmo_safe_calc_dims (const ImBuf *ibuf, const float2 &fallback_dims)
static bool node_group_operator_active_poll (bContext *C)
static bool node_group_operator_editable (bContext *C)
static StringRef group_ntree_idname (bContext *C)
StringRef node_group_idname (const bContext *C)
static bNodenode_group_get_active (bContext *C, const StringRef node_idname)
static void remap_pairing (bNodeTree &dst_tree, Span< bNode * > nodes, const Map< int32_t, int32_t > &identifier_map)

Typedef Documentation

◆ NodeSocketPair

Definition at line 66 of file node_shader_preview.cc.

◆ SocketColorFn

using blender::ed::space_node::SocketColorFn = void (*)(bContext *C, PointerRNA *ptr, PointerRNA *node_ptr, float *r_color)

Definition at line 996 of file drawnode.cc.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
NODE_SELECT_GROUPED_TYPE 
NODE_SELECT_GROUPED_COLOR 
NODE_SELECT_GROUPED_PREFIX 
NODE_SELECT_GROUPED_SUFIX 

Definition at line 405 of file node_select.cc.

◆ eNodeGroupSeparateType

Enumerator
NODE_GS_COPY 
NODE_GS_MOVE 

Definition at line 675 of file node_group.cc.

◆ NodeLinkAction

enum class blender::ed::space_node::NodeLinkAction : int
strong
Enumerator
Begin 
Cancel 
Swap 
Confirm 

Definition at line 1463 of file node_relationships.cc.

◆ NodeResizeAction

Enumerator
Begin 
Cancel 
SnapInvertOn 
SnapInvertOff 

Definition at line 952 of file node_edit.cc.

◆ NodeResizeDirection

Enumerator
NODE_RESIZE_NONE 
NODE_RESIZE_TOP 
NODE_RESIZE_BOTTOM 
NODE_RESIZE_RIGHT 
NODE_RESIZE_LEFT 

Definition at line 130 of file node_intern.hh.

Function Documentation

◆ activate_interface_socket()

void blender::ed::space_node::activate_interface_socket ( bNodeTree & tree,
bNodeTreeInterfaceSocket & io_socket )
static

◆ add_dragged_links_to_tree()

◆ add_error_message_button()

uiBut * blender::ed::space_node::add_error_message_button ( uiBlock & block,
const rctf & rect,
const int icon,
float & icon_offset,
const char * tooltip = nullptr )
static

◆ add_existing_group_input_fn()

◆ add_flat_items_for_layout()

void blender::ed::space_node::add_flat_items_for_layout ( const bNode & node,
const nodes::LayoutDeclaration & layout_decl,
Vector< FlatNodeItem > & r_items )
static

◆ add_flat_items_for_panel()

◆ add_flat_items_for_separator()

void blender::ed::space_node::add_flat_items_for_separator ( Vector< FlatNodeItem > & r_items)
static

◆ add_flat_items_for_socket()

◆ add_group_input_node_fn()

◆ add_interface_from_socket()

bNodeTreeInterfaceSocket * blender::ed::space_node::add_interface_from_socket ( const bNodeTree & original_tree,
bNodeTree & tree_for_interface,
const bNodeSocket & socket )
static

◆ add_node()

◆ add_node_group_asset()

◆ add_node_group_interface_from_declaration_recursive()

◆ add_rect_corner_positions()

void blender::ed::space_node::add_rect_corner_positions ( Vector< float2 > & positions,
const rctf & rect )
static

◆ add_reroute_exec()

wmOperatorStatus blender::ed::space_node::add_reroute_exec ( bContext * C,
wmOperator * op )
static

Definition at line 180 of file node_add.cc.

References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::BaseIteratorRange< SubIterator >::begin(), BKE_main_ensure_invariants(), BKE_ntree_update_tag_link_changed(), BLI_rctf_isect_pt_v(), C, CTX_data_main(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_space_node(), ED_preview_kill_jobs(), SpaceNode::edittree, Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::BaseIteratorRange< SubIterator >::end(), ListBase::first, blender::ed::space_node::RerouteCutsForSocket::from_node, i, bNodeTree::id, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), bNode::inputs, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::keys(), blender::Vector< T, InlineBufferCapacity, Allocator >::last(), link_path_intersection(), blender::ed::space_node::RerouteCutsForSocket::links, bNodeTree::links, LISTBASE_FOREACH, bNode::location, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_default(), blender::bke::node_add_link(), blender::bke::node_add_static_node(), blender::bke::node_attach_node(), node_deselect_all(), node_link_is_hidden_or_dimmed(), NODE_REROUTE, blender::bke::node_set_active(), OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, bNode::outputs, wmOperator::ptr, RNA_BEGIN, RNA_END, RNA_float_get_array(), bNode::runtime, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), UI_SCALE_FAC, UI_view2d_region_to_view(), ARegion::v2d, and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::values().

Referenced by NODE_OT_add_reroute().

◆ add_reroute_node_fn()

void blender::ed::space_node::add_reroute_node_fn ( nodes::LinkSearchOpParams & params)
static

◆ add_root_catalogs_draw()

void blender::ed::space_node::add_root_catalogs_draw ( const bContext * C,
Menu * menu )
static

◆ add_root_catalogs_menu_type()

◆ add_static_node()

◆ all_links_muted()

bool blender::ed::space_node::all_links_muted ( const bNodeSocket & socket)

Definition at line 1876 of file node_relationships.cc.

References NODE_LINK_MUTED.

Referenced by mute_links_exec().

◆ all_loading_finished()

bool blender::ed::space_node::all_loading_finished ( )
static

◆ all_nodes_preview_update()

◆ animation_basepath_change_free()

void blender::ed::space_node::animation_basepath_change_free ( AnimationBasePathChange * basepath_change)
static

◆ animation_basepath_change_new()

AnimationBasePathChange * blender::ed::space_node::animation_basepath_change_new ( const StringRef src_basepath,
const StringRef dst_basepath )
static

The given paths will be owned by the returned instance. Both pointers are allowed to point to the same string.

Definition at line 283 of file node_group.cc.

References AT, BLI_strdupn(), blender::StringRefBase::data(), AnimationBasePathChange::dst_basepath, MEM_callocN(), blender::StringRefBase::size(), and AnimationBasePathChange::src_basepath.

Referenced by node_group_make_insert_selected(), node_group_separate_selected(), and node_group_ungroup().

◆ any_node_selected()

bool blender::ed::space_node::any_node_selected ( const bNodeTree & node_tree)
static

Definition at line 1154 of file node_select.cc.

References NODE_SELECT.

Referenced by node_select_all_exec().

◆ any_node_uses_id()

bool blender::ed::space_node::any_node_uses_id ( const bNodeTree * ntree,
const ID * id )
static

Definition at line 662 of file space_node.cc.

References ELEM.

Referenced by node_area_listener().

◆ attribute_search_exec_fn()

◆ attribute_search_update_fn()

void blender::ed::space_node::attribute_search_update_fn ( const bContext * C,
void * arg,
const char * str,
uiSearchItems * items,
const bool is_first )
static

◆ backimage_fit_exec()

◆ backimage_zoom_exec()

◆ best_socket_output()

bNodeSocket * blender::ed::space_node::best_socket_output ( bNodeTree * ntree,
bNode * node,
bNodeSocket * sock_target,
const bool allow_multiple )
static

◆ BLI_STATIC_ASSERT() [1/3]

blender::ed::space_node::BLI_STATIC_ASSERT ( std::is_trivially_destructible_v< AttributeSearchData > ,
""  )

◆ BLI_STATIC_ASSERT() [2/3]

blender::ed::space_node::BLI_STATIC_ASSERT ( std::is_trivially_destructible_v< GridSearchData > ,
""  )

◆ BLI_STATIC_ASSERT() [3/3]

blender::ed::space_node::BLI_STATIC_ASSERT ( std::is_trivially_destructible_v< LayerSearchData > ,
""  )

◆ build_catalog_tree()

◆ build_socket_tooltip()

void blender::ed::space_node::build_socket_tooltip ( uiTooltipData & tip_data,
bContext & C,
uiBut * but,
const bNodeTree & tree,
const bNodeSocket & socket )

◆ calc_node_frame_dimensions()

rctf blender::ed::space_node::calc_node_frame_dimensions ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
bNode & node )
static

◆ calculate_inner_link_bezier_points()

void blender::ed::space_node::calculate_inner_link_bezier_points ( std::array< float2, 4 > & points)
static

◆ can_attach_node_to_frame()

bool blender::ed::space_node::can_attach_node_to_frame ( const bNode & node,
const bNode & frame )
static

◆ catalog_assets_menu_type()

◆ clear_picking_highlight()

void blender::ed::space_node::clear_picking_highlight ( ListBase * links)
static

◆ clear_viewer_border_exec()

◆ compare_node_depth()

bool blender::ed::space_node::compare_node_depth ( const bNode * a,
const bNode * b )
static

Return true when a should be behind b and false otherwise.

Definition at line 254 of file node_draw.cc.

References b, bNode::flag, NODE_ACTIVE, NODE_BACKGROUND, NODE_SELECT, and bNode::parent.

Referenced by tree_draw_order_update().

◆ compo_breakjob()

bool blender::ed::space_node::compo_breakjob ( void * cjv)
static

Definition at line 134 of file node_edit.cc.

References G, blender::ed::space_node::CompoJob::stop, and USE_ESC_COMPO.

Referenced by compo_startjob().

◆ compo_canceljob()

◆ compo_completejob()

◆ compo_freejob()

◆ compo_initjob()

◆ compo_progressjob()

void blender::ed::space_node::compo_progressjob ( void * cjv,
float progress )
static

Definition at line 225 of file node_edit.cc.

References blender::ed::space_node::CompoJob::progress.

Referenced by compo_startjob().

◆ compo_redrawjob()

void blender::ed::space_node::compo_redrawjob ( void * cjv)
static

Definition at line 155 of file node_edit.cc.

References blender::ed::space_node::CompoJob::do_update.

Referenced by compo_startjob().

◆ compo_startjob()

◆ compo_statsdrawjob()

void blender::ed::space_node::compo_statsdrawjob ( void * cjv,
const char *  )
static

Definition at line 147 of file node_edit.cc.

References blender::ed::space_node::CompoJob::do_update.

Referenced by compo_startjob().

◆ compo_updatejob()

void blender::ed::space_node::compo_updatejob ( void * )
static

Definition at line 220 of file node_edit.cc.

References NC_SCENE, ND_COMPO_RESULT, and WM_main_add_notifier().

Referenced by ED_node_composite_job().

◆ composite_node_active()

◆ composite_node_editable()

bool blender::ed::space_node::composite_node_editable ( bContext * C)

Operator poll callback.

Definition at line 454 of file node_edit.cc.

References C, CTX_wm_space_node(), ED_node_is_compositor(), and ED_operator_node_editable().

Referenced by NODE_OT_cryptomatte_layer_add(), and NODE_OT_cryptomatte_layer_remove().

◆ compositor_accumulate_frame_node_execution_time()

std::optional< std::chrono::nanoseconds > blender::ed::space_node::compositor_accumulate_frame_node_execution_time ( const TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

◆ compositor_node_get_execution_time()

std::optional< std::chrono::nanoseconds > blender::ed::space_node::compositor_node_get_execution_time ( const TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

◆ compute_context_for_edittree()

const ComputeContext * blender::ed::space_node::compute_context_for_edittree ( const SpaceNode & snode,
bke::ComputeContextCache & compute_context_cache )
nodiscard

◆ compute_context_for_edittree_node()

const ComputeContext * blender::ed::space_node::compute_context_for_edittree_node ( const SpaceNode & snode,
bke::ComputeContextCache & compute_context_cache,
const bNode & node )
nodiscard

◆ compute_context_for_edittree_socket()

◆ compute_context_for_tree_path()

◆ compute_context_for_zone()

◆ compute_context_for_zones()

const ComputeContext * blender::ed::space_node::compute_context_for_zones ( const Span< const bke::bNodeTreeZone * > zones,
bke::ComputeContextCache & compute_context_cache,
const ComputeContext * parent_compute_context )
nodiscard

◆ connect_nested_node_to_node()

void blender::ed::space_node::connect_nested_node_to_node ( const Span< bNodeTreePath * > treepath,
bNode & nested_node,
bNodeSocket & nested_socket,
bNode & final_node,
bNodeSocket & final_socket,
const char * route_name )
static

Get a link to the node outside the nested node-groups by creating a new output socket for each nested node-group. To do so we cover all nested node-trees starting from the farthest, and update the nested_node_iter pointer to the current node-group instance used for linking. We stop before getting to the main node-tree because the output type is different.

Definition at line 357 of file node_shader_preview.cc.

References BKE_ntree_update_after_single_tree_change(), BKE_ntree_update_tag_node_property(), blender::Span< T >::first(), bNode::flag, G, i, bNodeSocket::idname, blender::bke::node_add_link(), blender::bke::node_add_static_node(), NODE_DO_OUTPUT, blender::bke::node_find_enabled_input_socket(), blender::bke::node_find_enabled_output_socket(), blender::bke::node_find_node_by_name(), NODE_GROUP_OUTPUT, NODE_INTERFACE_SOCKET_OUTPUT, bNodeTreePath::node_name, bNodeTreePath::nodetree, blender::Span< T >::size(), and bNodeTree::tree_interface.

Referenced by connect_node_to_surface_output(), and connect_nodes_to_aovs().

◆ connect_node_to_surface_output()

◆ connect_nodes_to_aovs()

◆ context_path_add_node_tree_and_node_groups()

void blender::ed::space_node::context_path_add_node_tree_and_node_groups ( const SpaceNode & snode,
Vector< ui::ContextPathItem > & path,
const bool skip_base = false )
static

◆ context_path_add_object_data()

void blender::ed::space_node::context_path_add_object_data ( Vector< ui::ContextPathItem > & path,
Object & object )
static

◆ context_path_add_top_level_shader_node_tree()

void blender::ed::space_node::context_path_add_top_level_shader_node_tree ( const SpaceNode & snode,
Vector< ui::ContextPathItem > & path,
StructRNA & rna_type,
void * ptr )
static

◆ context_path_for_space_node()

◆ count_multi_input_socket_links()

void blender::ed::space_node::count_multi_input_socket_links ( bNodeTree & ntree,
SpaceNode & snode )
static

◆ create_drag_link()

bNodeLink blender::ed::space_node::create_drag_link ( bNode & node,
bNodeSocket & socket )
static

◆ create_search_popup_block()

◆ current_node_instance_key()

◆ cursor_isect_multi_input_socket()

bool blender::ed::space_node::cursor_isect_multi_input_socket ( const float2 & cursor,
const bNodeSocket & socket )
static

◆ cut_links_exec()

◆ data_type_in_attribute_input_node()

eCustomDataType blender::ed::space_node::data_type_in_attribute_input_node ( const eCustomDataType type)
static

Some custom data types don't correspond to node types and therefore can't be used by the named attribute input node. Find the best option or fall back to float.

Definition at line 146 of file node_geometry_attribute_search.cc.

References CD_PROP_BOOL, CD_PROP_BYTE_COLOR, CD_PROP_COLOR, CD_PROP_FLOAT, CD_PROP_FLOAT2, CD_PROP_FLOAT3, CD_PROP_FLOAT4X4, CD_PROP_INT16_2D, CD_PROP_INT32, CD_PROP_INT32_2D, CD_PROP_INT8, CD_PROP_QUATERNION, and CD_PROP_STRING.

Referenced by attribute_search_exec_fn().

◆ detach_links_exec()

◆ determine_potentially_visible_panels()

void blender::ed::space_node::determine_potentially_visible_panels ( const bNode & node,
MutableSpan< bool > r_result )
static

A panel is potentially visible if it contains any socket that is available and not hidden.

Definition at line 689 of file node_draw.cc.

References determine_potentially_visible_panels_recursive().

Referenced by determine_visible_panels().

◆ determine_potentially_visible_panels_recursive()

void blender::ed::space_node::determine_potentially_visible_panels_recursive ( const bNode & node,
const nodes::PanelDeclaration & panel_decl,
MutableSpan< bool > r_result )
static

◆ determine_visible_panels()

void blender::ed::space_node::determine_visible_panels ( const bNode & node,
MutableSpan< bool > r_visibility_states )
static

A panel is visible if all of the following are true:

  • All parent panels are visible and not collapsed.
  • The panel contains any visible sockets.

Definition at line 738 of file node_draw.cc.

References determine_potentially_visible_panels(), determine_visible_panels_impl(), and blender::MutableSpan< T >::size().

Referenced by make_flat_node_items().

◆ determine_visible_panels_impl()

void blender::ed::space_node::determine_visible_panels_impl ( const bNode & node,
const Span< bool > potentially_visible_states,
MutableSpan< bool > r_result )
static

Definition at line 721 of file node_draw.cc.

References determine_visible_panels_impl_recursive().

Referenced by determine_visible_panels().

◆ determine_visible_panels_impl_recursive()

void blender::ed::space_node::determine_visible_panels_impl_recursive ( const bNode & node,
const nodes::PanelDeclaration & panel_decl,
const Span< bool > potentially_visible_states,
MutableSpan< bool > r_result )
static

◆ displace_links()

◆ do_lasso_select_node()

◆ dragged_links_are_detached()

bool blender::ed::space_node::dragged_links_are_detached ( const bNodeLinkDrag & nldrag)
static

Check if any of the dragged links are connected to a socket on the side that they are dragged from.

Definition at line 1025 of file node_relationships.cc.

References bNodeLink::fromnode, bNodeLink::fromsock, blender::ed::space_node::bNodeLinkDrag::in_out, blender::ed::space_node::bNodeLinkDrag::links, SOCK_OUT, bNodeLink::tonode, and bNodeLink::tosock.

Referenced by should_create_drag_link_search_menu().

◆ draw_background_color()

void blender::ed::space_node::draw_background_color ( const SpaceNode & snode)
static

Make the background slightly brighter to indicate that users are inside a node-group.

Definition at line 4826 of file node_draw.cc.

References BLI_listbase_count_at_most(), GPU_clear_color(), max_ii(), mul_v3_fl(), TH_BACK, SpaceNode::treepath, and UI_GetThemeColor3fv().

Referenced by node_draw_space().

◆ draw_draglink_tooltip()

◆ draw_draglink_tooltip_activate()

void blender::ed::space_node::draw_draglink_tooltip_activate ( const ARegion & region,
bNodeLinkDrag & nldrag )
static

◆ draw_draglink_tooltip_deactivate()

void blender::ed::space_node::draw_draglink_tooltip_deactivate ( const ARegion & region,
bNodeLinkDrag & nldrag )
static

◆ draw_frame_overlays()

void blender::ed::space_node::draw_frame_overlays ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
const ARegion & region,
const SpaceNode & snode,
const bNodeTree & ntree,
Span< uiBlock * > blocks )
static

Definition at line 4446 of file node_draw.cc.

References C, and frame_node_draw_overlay().

Referenced by node_draw_nodetree().

◆ draw_gizmo_pin_icon()

void blender::ed::space_node::draw_gizmo_pin_icon ( uiLayout * layout,
PointerRNA * socket_ptr )
static

Definition at line 1056 of file drawnode.cc.

References uiLayout::prop(), and UI_ITEM_NONE.

Referenced by std_node_socket_draw().

◆ draw_link_errors()

◆ draw_node_details()

bool blender::ed::space_node::draw_node_details ( const SpaceNode & snode)
static

◆ draw_node_socket_batch()

◆ draw_node_socket_name_editable()

void blender::ed::space_node::draw_node_socket_name_editable ( uiLayout * layout,
bNodeSocket * sock,
const StringRef text )
static

◆ draw_node_socket_without_value()

void blender::ed::space_node::draw_node_socket_without_value ( uiLayout * layout,
bNodeSocket * sock,
const StringRef text )
static

Definition at line 1080 of file drawnode.cc.

References draw_node_socket_name_editable().

Referenced by std_node_socket_draw().

◆ draw_nodespace_back_pix()

void blender::ed::space_node::draw_nodespace_back_pix ( const bContext & C,
ARegion & region,
SpaceNode & snode,
bNodeInstanceKey parent_key )

◆ draw_nodetree()

void blender::ed::space_node::draw_nodetree ( const bContext & C,
ARegion & region,
bNodeTree & ntree,
bNodeInstanceKey parent_key )
static

Definition at line 4751 of file node_draw.cc.

References blender::ed::space_node::TreeDrawContext::active_geometry_nodes_viewer, BKE_scene_uses_shader_previews(), BLI_SCOPED_DEFER, blender::ed::space_node::TreeDrawContext::bmain, C, blender::ed::space_node::TreeDrawContext::compositor_per_node_execution_time, CTX_data_depsgraph_pointer(), CTX_data_main(), CTX_data_scene(), CTX_wm_region(), CTX_wm_space_node(), CTX_wm_window(), CTX_wm_workspace(), blender::ed::space_node::TreeDrawContext::depsgraph, blender::ed::space_node::TreeDrawContext::extra_info_rows_per_node, blender::ed::viewer_path::find_geometry_nodes_viewer(), find_menu_switch_sources_for_index_switch_nodes(), find_sockets_on_active_gizmo_paths(), SpaceNodeOverlay::flag, blender::nodes::geo_eval_log::ContextualGeoTreeLogs::foreach_tree_log(), blender::nodes::geo_eval_log::GeoNodesLog::get_contextual_tree_logs(), get_nested_previews(), i, lock, log, blender::ed::space_node::TreeDrawContext::menu_switch_source_by_index_switch, blender::ed::space_node::TreeDrawContext::nested_group_infos, node_draw_nodetree(), node_draw_zones_and_frames(), node_get_extra_info(), node_uiblocks_init(), node_update_nodetree(), NTREE_COMPOSIT, NTREE_GEOMETRY, NTREE_SHADER, SpaceNode::overlay, blender::ed::space_node::TreeDrawContext::region, bNodeTree::runtime, Scene::runtime, blender::ed::space_node::TreeDrawContext::scene, blender::ed::space_node::TreeDrawContext::shader_node_errors, SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_PREVIEWS, tree_draw_order_calc_nodes(), blender::ed::space_node::TreeDrawContext::tree_logs, bNodeTree::type, U, USER_EXPERIMENTAL_TEST, WorkSpace::viewer_path, and blender::ed::space_node::TreeDrawContext::window.

Referenced by node_draw_space().

◆ draw_socket_layout()

void blender::ed::space_node::draw_socket_layout ( TreeDrawContext & tree_draw_ctx,
const bContext & C,
uiLayout & layout,
bNodeSocket & socket,
bNodeTree & ntree,
bNode & node,
PointerRNA & node_ptr,
PointerRNA & socket_ptr,
const char * panel_label )
static

◆ draw_tree_path()

◆ duplicate_compositing_node_group_exec()

◆ duplicate_material()

Material * blender::ed::space_node::duplicate_material ( const Material & mat)
static

◆ ensure_nodetree_previews()

void blender::ed::space_node::ensure_nodetree_previews ( const bContext & C,
NestedTreePreviews & tree_previews,
Material & material,
ListBase & treepath )
static

Definition at line 761 of file node_shader_preview.cc.

References Vector< T, InlineBufferCapacity, Allocator >::append(), blender::ed::space_node::ShaderNodesPreviewJob::bmain, C, CTX_data_main(), CTX_data_scene(), CTX_wm_manager(), CTX_wm_space_node(), CTX_wm_window(), duplicate_material(), ED_check_engine_supports_preview(), ED_preview_ensure_dbase(), ListBase::first, bNode::id, ListBase::last, Vector< T, InlineBufferCapacity, Allocator >::last(), MA_FLAT, blender::ed::space_node::ShaderNodesPreviewJob::mat_copy, MEM_callocN(), NC_NODE, bNodeTreePath::next, blender::bke::node_find_node_by_name(), bNodeTreePath::nodetree, Material::nodetree, Material::pr_type, blender::ed::space_node::ShaderNodesPreviewJob::preview_type, blender::ed::space_node::NestedTreePreviews::rendering, blender::ed::space_node::ShaderNodesPreviewJob::rendering_AOVs, blender::ed::space_node::ShaderNodesPreviewJob::rendering_node, blender::ed::space_node::NestedTreePreviews::rendering_preview_type, blender::ed::space_node::NestedTreePreviews::rendering_previews_refresh_state, blender::ed::space_node::NestedTreePreviews::restart_needed, bNodeTree::runtime, blender::ed::space_node::ShaderNodesPreviewJob::scene, shader_preview_free(), shader_preview_startjob(), SN_OVERLAY_PREVIEW_3D, blender::ed::space_node::ShaderNodesPreviewJob::tree_previews, blender::ed::space_node::ShaderNodesPreviewJob::treepath_copy, update_needed_flag(), WM_JOB_EXCL_RENDER, WM_JOB_TYPE_RENDER_PREVIEW, WM_jobs_callbacks(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), WM_jobs_stop_type(), and WM_jobs_timer().

Referenced by get_nested_previews().

◆ ENUM_OPERATORS()

blender::ed::space_node::ENUM_OPERATORS ( NodeResizeDirection ,
NODE_RESIZE_LEFT  )

References NODE_RESIZE_LEFT.

◆ find_bounds_by_zone_recursive()

◆ find_common_parent_node()

◆ find_menu_switch_sources_for_index_switch_nodes()

Map< const bNode *, const bNode * > blender::ed::space_node::find_menu_switch_sources_for_index_switch_nodes ( const SpaceNode & snode,
const bNodeTree & ntree,
bke::ComputeContextCache & compute_context_cache )
static

◆ find_nested_node_id_in_root() [1/2]

◆ find_nested_node_id_in_root() [2/2]

std::optional< nodes::FoundNestedNodeID > blender::ed::space_node::find_nested_node_id_in_root ( const SpaceNode & snode,
const bNode & node )

◆ find_node_under_cursor()

const bNode * blender::ed::space_node::find_node_under_cursor ( SpaceNode & snode,
const float2 & cursor )
static

◆ find_socket_at_mouse_y()

const bNodeSocket * blender::ed::space_node::find_socket_at_mouse_y ( const Span< const bNodeSocket * > sockets,
const float view_y )
static

◆ find_socket_to_use_for_interface()

const bNodeSocket & blender::ed::space_node::find_socket_to_use_for_interface ( const bNodeTree & node_tree,
const bNodeSocket & socket )
static

Skip reroute nodes when finding the socket to use as an example for a new group interface item. This moves "inward" into nodes selected for grouping to find properties like whether a connected socket has a hidden value. It only works in trivial situations– a single line of connected reroutes with no branching.

Definition at line 898 of file node_group.cc.

References bNodeSocket::in_out, and SOCK_IN.

Referenced by add_interface_from_socket().

◆ find_sockets_on_active_gizmo_paths()

◆ find_visible_center_of_link()

std::optional< float2 > blender::ed::space_node::find_visible_center_of_link ( const View2D & v2d,
const bNodeLink & link,
const float radius,
const float region_padding )
static

Tries to find a position on the link where we can draw link information like an error icon. If the link center is not visible, it finds the closest point to the link center that's still visible with some padding if possible. If none such point is found, nullopt is returned.

Definition at line 4463 of file node_draw.cc.

References BLI_rctf_clamp_segment(), BLI_rctf_isect_pt_v(), BLI_rctf_length_x(), BLI_rctf_length_y(), BLI_rctf_pad(), View2D::cur, blender::math::distance(), float, bNodeLink::fromnode, bNodeLink::fromsock, i, blender::math::interpolate(), length(), blender::math::midpoint(), node_link_bezier_points_evaluated(), socket_link_connection_location(), bNodeLink::tonode, bNodeLink::tosock, and UI_UNIT_X.

Referenced by draw_link_errors().

◆ frame_node_draw_background()

◆ frame_node_draw_label()

◆ frame_node_draw_outline()

◆ frame_node_draw_overlay()

◆ frame_node_layout()

◆ free_previews()

void blender::ed::space_node::free_previews ( wmWindowManager & wm,
SpaceNode & snode )

◆ g_batch_nodesocket()

GBatchNodesocket & blender::ed::space_node::g_batch_nodesocket ( )
static

◆ gather_search_link_ops_for_all_assets()

◆ gather_socket_link_operations()

◆ geo_node_get_execution_time()

◆ get_attribute_info_from_context()

◆ get_available_sorted_inputs()

Vector< bNodeSocket * > blender::ed::space_node::get_available_sorted_inputs ( const bNodeTree * ntree,
const bNode * node,
const bool only_unlinked )
static

Definition at line 267 of file node_relationships.cc.

References b, input, bNode::inputs, inputs, LISTBASE_FOREACH, and socket_is_available().

Referenced by snode_autoconnect().

◆ get_builtin_menus()

Set< StringRef > blender::ed::space_node::get_builtin_menus ( const int tree_type)
static

Used to avoid adding a separate root catalog when the assets have already been added to one of the builtin menus. TODO: The need to define the builtin menu labels here is completely non-ideal. We don't have any UI introspection that can do this though. This can be solved in the near future by removing the need to define the add menu completely, instead using a per-node-type path which can be merged with catalog tree.

Definition at line 66 of file add_menu_assets.cc.

References NTREE_COMPOSIT, NTREE_GEOMETRY, and NTREE_SHADER.

Referenced by node_catalog_assets_draw(), and root_catalogs_draw().

◆ get_compute_context_hash_for_node_editor()

◆ get_context_path_node_compositor()

◆ get_context_path_node_geometry()

◆ get_context_path_node_shader()

◆ get_grid_names_from_context()

◆ get_image_from_viewlayer_and_pass()

ImBuf * blender::ed::space_node::get_image_from_viewlayer_and_pass ( RenderResult & rr,
const char * layer_name,
const char * pass_name )
static

◆ get_layer_names_from_context()

◆ get_main_socket()

◆ get_main_socket_priority()

◆ get_margin_between_elements()

float blender::ed::space_node::get_margin_between_elements ( const Span< FlatNodeItem > items,
const int next_index )
static

Get the margin between two consecutive items.

Definition at line 926 of file node_draw.cc.

References BLI_assert, BLI_assert_unreachable, next, and NODE_ITEM_SPACING_Y.

Referenced by node_update_basis_from_declaration().

◆ get_margin_empty()

float blender::ed::space_node::get_margin_empty ( )
static

Get the height of an empty node body.

Definition at line 875 of file node_draw.cc.

References NODE_DYS.

Referenced by node_update_basis_from_declaration().

◆ get_margin_from_top()

◆ get_margin_to_bottom()

◆ get_min_max_of_nodes()

void blender::ed::space_node::get_min_max_of_nodes ( const Span< bNode * > nodes,
const bool use_size,
float2 & min,
float2 & max )
static

◆ get_modifier_for_node_editor()

◆ get_nested_previews()

NestedTreePreviews * blender::ed::space_node::get_nested_previews ( const bContext & C,
SpaceNode & snode )

This function returns the NestedTreePreviews * for the node-tree shown in the SpaceNode. This is the first function in charge of the previews by calling ensure_nodetree_previews.

Definition at line 140 of file node_shader_preview.cc.

References C, ensure_nodetree_previews(), get_compute_context_hash_for_node_editor(), GS, hash, SpaceNode::id, ID_MA, ID::name, SpaceNode::runtime, blender::ed::space_node::SpaceNode_Runtime::tree_previews_per_context, SpaceNode::treepath, and U.

Referenced by draw_nodetree().

◆ get_new_linked_node()

bNode * blender::ed::space_node::get_new_linked_node ( bNodeSocket & socket,
const Span< bNode * > new_nodes )
static

Definition at line 353 of file link_drag_search.cc.

References blender::Span< T >::contains().

Referenced by link_drag_search_exec_fn().

◆ get_node_clipboard()

NodeClipboard & blender::ed::space_node::get_node_clipboard ( )
static

◆ get_node_editor_root_compute_context()

◆ get_nodes_to_group()

◆ get_nodes_to_sync()

◆ get_selected_node_for_insertion()

bNode * blender::ed::space_node::get_selected_node_for_insertion ( bNodeTree & node_tree)
static

Definition at line 2506 of file node_relationships.cc.

References SELECT.

Referenced by node_insert_on_link_flags(), and node_insert_on_link_flags_set().

◆ get_selected_nodes()

◆ get_sorted_node_parents()

◆ get_viewer_shortcut_icon()

◆ gizmo_node_backdrop_prop_matrix_get()

void blender::ed::space_node::gizmo_node_backdrop_prop_matrix_get ( const wmGizmo * ,
wmGizmoProperty * gz_prop,
void * value_p )
static

◆ gizmo_node_backdrop_prop_matrix_set()

void blender::ed::space_node::gizmo_node_backdrop_prop_matrix_set ( const wmGizmo * ,
wmGizmoProperty * gz_prop,
const void * value_p )
static

◆ gizmo_node_bbox_update()

◆ gizmo_node_box_mask_prop_matrix_get()

◆ gizmo_node_box_mask_prop_matrix_set()

◆ gizmo_node_crop_prop_matrix_get()

◆ gizmo_node_crop_prop_matrix_set()

◆ gizmo_node_split_prop_matrix_get()

◆ gizmo_node_split_prop_matrix_set()

◆ grid_data_type_string()

StringRef blender::ed::space_node::grid_data_type_string ( const VolumeGridType type)
static

◆ grid_search_exec_fn()

◆ grid_search_item_add()

◆ grid_search_update_fn()

void blender::ed::space_node::grid_search_update_fn ( const bContext * C,
void * arg,
const char * str,
uiSearchItems * items,
const bool is_first )
static

◆ grid_size_get()

float blender::ed::space_node::grid_size_get ( )

◆ group_ntree_idname()

StringRef blender::ed::space_node::group_ntree_idname ( bContext * C)
static

Definition at line 112 of file node_group.cc.

References C, CTX_wm_space_node(), and SpaceNode::tree_idname.

Referenced by node_group_make_exec().

◆ handle_group_input_node_selection()

void blender::ed::space_node::handle_group_input_node_selection ( bNodeTree & tree,
const bNode & group_input_node,
const float2 & cursor )
static

Definition at line 557 of file node_select.cc.

References activate_interface_socket(), find_socket_at_mouse_y(), and tree.

Referenced by node_mouse_select().

◆ handle_group_output_node_selection()

void blender::ed::space_node::handle_group_output_node_selection ( bNodeTree & tree,
const bNode & group_output_node,
const float2 & cursor )
static

Definition at line 574 of file node_select.cc.

References activate_interface_socket(), find_socket_at_mouse_y(), and tree.

Referenced by node_mouse_select().

◆ has_workbench_in_texture_color()

bool blender::ed::space_node::has_workbench_in_texture_color ( const wmWindowManager * wm,
const Scene * scene,
const Object * ob )
static

Function to detect if there is a visible view3d that uses workbench in texture mode. This function is for fixing #76970 for Blender 2.83. The actual fix should add a mechanism in the depsgraph that can be used by the draw engines to check if they need to be redrawn.

We don't want to add these risky changes this close before releasing 2.83 without good testing hence this workaround. There are still cases were too many updates happen. For example when you have both a Cycles and workbench with textures viewport.

Definition at line 77 of file node_select.cc.

References bScreen::areabase, BKE_workspace_active_screen_get(), ED_view3d_has_workbench_in_texture_color(), LISTBASE_FOREACH, and SPACE_VIEW3D.

Referenced by node_mouse_select(), and node_select_single().

◆ initialize_compositor_sequencer_node_group()

◆ invalid_links_uiblock_init()

uiBlock & blender::ed::space_node::invalid_links_uiblock_init ( const bContext & C)
static

◆ invoke_node_link_drag_add_menu()

void blender::ed::space_node::invoke_node_link_drag_add_menu ( bContext & C,
bNode & node,
bNodeSocket & socket,
const float2 & cursor )

Definition at line 477 of file link_drag_search.cc.

References C, create_search_popup_block(), and UI_popup_block_invoke_ex().

Referenced by node_link_modal().

◆ is_event_over_node_or_socket()

bool blender::ed::space_node::is_event_over_node_or_socket ( const bContext & C,
const wmEvent & event )
static

◆ is_node_panels_supported()

bool blender::ed::space_node::is_node_panels_supported ( const bNode & node)
static

◆ is_position_over_node_or_socket()

bool blender::ed::space_node::is_position_over_node_or_socket ( SpaceNode & snode,
ARegion & region,
const float2 & mouse )
static

◆ join_group_inputs()

◆ layer_search_exec_fn()

◆ layer_search_update_fn()

void blender::ed::space_node::layer_search_update_fn ( const bContext * C,
void * arg,
const char * str,
uiSearchItems * items,
const bool is_first )
static

◆ link_drag_search_exec_fn()

◆ link_drag_search_free_fn()

void blender::ed::space_node::link_drag_search_free_fn ( void * arg)
static

Definition at line 422 of file link_drag_search.cc.

Referenced by create_search_popup_block().

◆ link_drag_search_listen_fn()

void blender::ed::space_node::link_drag_search_listen_fn ( const wmRegionListenerParams * params,
void * arg )
static

◆ link_drag_search_update_fn()

◆ link_path_intersection()

std::optional< float2 > blender::ed::space_node::link_path_intersection ( const bNodeLink & link,
const Span< float2 > path )

◆ make_flat_node_items()

Vector< FlatNodeItem > blender::ed::space_node::make_flat_node_items ( bNode & node)
static

Flattens the visible panels, sockets etc. of the node into a list that is then used to draw it.

Definition at line 840 of file node_draw.cc.

References add_flat_items_for_layout(), add_flat_items_for_panel(), add_flat_items_for_separator(), add_flat_items_for_socket(), BLI_assert, determine_visible_panels(), is_node_panels_supported(), bNode::num_panel_states, and bNode::runtime.

Referenced by node_update_basis_from_declaration().

◆ mark_sockets_collapsed_recursive()

void blender::ed::space_node::mark_sockets_collapsed_recursive ( bNode & node,
const int node_left_x,
const nodes::PanelDeclaration & visible_panel_decl,
const nodes::PanelDeclaration & panel_decl )
static

◆ mute_links_exec()

◆ named_attribute_tooltip()

◆ nearest_node_grid_coord()

float blender::ed::space_node::nearest_node_grid_coord ( float co)
static

Definition at line 983 of file node_edit.cc.

References fmod(), grid_size_get(), and UI_SCALE_FAC.

Referenced by node_resize_modal().

◆ need_drag_link_tooltip()

bool blender::ed::space_node::need_drag_link_tooltip ( const bNodeTree & node_tree,
const bNodeLinkDrag & nldrag )
static

◆ new_compositing_node_group_exec()

◆ new_compositing_node_group_invoke()

wmOperatorStatus blender::ed::space_node::new_compositing_node_group_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ new_compositor_sequencer_node_group_exec()

◆ new_node_tree_exec()

◆ new_node_tree_impl()

bNodeTree * blender::ed::space_node::new_node_tree_impl ( bContext * C,
StringRef treename,
StringRef idname )
static

◆ new_node_tree_type_itemf()

const EnumPropertyItem * blender::ed::space_node::new_node_tree_type_itemf ( bContext * ,
PointerRNA * ,
PropertyRNA * ,
bool * r_free )
static

Definition at line 1678 of file node_add.cc.

References rna_node_tree_type_itemf().

Referenced by NODE_OT_new_node_tree().

◆ node_activate_viewer_exec()

◆ node_active_link_viewer_exec()

◆ node_active_link_viewer_poll()

bool blender::ed::space_node::node_active_link_viewer_poll ( bContext * C)
static

◆ node_add_collection_exec()

◆ node_add_collection_invoke()

◆ node_add_collection_poll()

bool blender::ed::space_node::node_add_collection_poll ( bContext * C)
static

◆ node_add_color_exec()

◆ node_add_color_invoke()

◆ node_add_color_poll()

bool blender::ed::space_node::node_add_color_poll ( bContext * C)
static

◆ node_add_error_message_button()

◆ node_add_group_asset_get_description()

std::string blender::ed::space_node::node_add_group_asset_get_description ( bContext * C,
wmOperatorType * ,
PointerRNA * ptr )
static

◆ node_add_group_asset_invoke()

◆ node_add_group_exec()

◆ node_add_group_input_node_exec()

◆ node_add_group_input_node_invoke()

◆ node_add_group_input_node_poll()

bool blender::ed::space_node::node_add_group_input_node_poll ( bContext * C)
static

◆ node_add_group_invoke()

◆ node_add_group_poll()

bool blender::ed::space_node::node_add_group_poll ( bContext * C)
static

◆ node_add_image_exec()

wmOperatorStatus blender::ed::space_node::node_add_image_exec ( bContext * C,
wmOperator * op )
static

◆ node_add_image_invoke()

◆ node_add_image_poll()

bool blender::ed::space_node::node_add_image_poll ( bContext * C)
static

Definition at line 847 of file node_add.cc.

References C, CTX_wm_space_node(), STR_ELEM, and SpaceNode::tree_idname.

Referenced by NODE_OT_add_image().

◆ node_add_import_node_exec()

◆ node_add_import_node_invoke()

◆ node_add_import_node_poll()

bool blender::ed::space_node::node_add_import_node_poll ( bContext * C)
static

◆ node_add_mask_exec()

◆ node_add_mask_poll()

bool blender::ed::space_node::node_add_mask_poll ( bContext * C)
static

◆ node_add_material_exec()

◆ node_add_material_invoke()

◆ node_add_material_poll()

bool blender::ed::space_node::node_add_material_poll ( bContext * C)
static

◆ node_add_menu_poll()

bool blender::ed::space_node::node_add_menu_poll ( const bContext * C,
MenuType *  )
static

◆ node_add_nodes_modal()

◆ node_add_object_exec()

◆ node_add_object_invoke()

◆ node_add_object_poll()

bool blender::ed::space_node::node_add_object_poll ( bContext * C)
static

◆ node_area_listener()

◆ node_area_refresh()

◆ node_area_tag_tree_recalc()

void blender::ed::space_node::node_area_tag_tree_recalc ( SpaceNode * snode,
ScrArea * area )
static

Tag the space to recalculate the current tree.

For all node trees this will do snode_set_context() which takes care of setting an active tree. This will be done in the area refresh callback.

For compositor tree this will additionally start of the compositor job.

Definition at line 683 of file space_node.cc.

References ED_area_tag_refresh(), ED_node_is_compositor(), blender::ed::space_node::SpaceNode_Runtime::recalc_regular_compositing, and SpaceNode::runtime.

Referenced by node_area_listener().

◆ node_asset_shelf_region_init()

void blender::ed::space_node::node_asset_shelf_region_init ( wmWindowManager * wm,
ARegion * region )
static

◆ node_attach_invoke()

◆ node_box_select_exec()

◆ node_box_select_invoke()

wmOperatorStatus blender::ed::space_node::node_box_select_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_buts_colorramp()

void blender::ed::space_node::node_buts_colorramp ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 112 of file drawnode.cc.

References ptr, and uiTemplateColorRamp().

Referenced by node_shader_set_butfunc(), and node_texture_set_butfunc().

◆ node_buts_combsep_color()

void blender::ed::space_node::node_buts_combsep_color ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 194 of file drawnode.cc.

References DEFAULT_FLAGS, uiLayout::prop(), and ptr.

Referenced by node_shader_set_butfunc().

◆ node_buts_curvecol()

◆ node_buts_curvefloat()

void blender::ed::space_node::node_buts_curvefloat ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 122 of file drawnode.cc.

References ptr, and uiTemplateCurveMapping().

Referenced by node_shader_set_butfunc().

◆ node_buts_curvevec()

void blender::ed::space_node::node_buts_curvevec ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 117 of file drawnode.cc.

References ptr, and uiTemplateCurveMapping().

Referenced by node_shader_set_butfunc().

◆ node_buts_frame_ex()

void blender::ed::space_node::node_buts_frame_ex ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 264 of file drawnode.cc.

References DEFAULT_FLAGS, IFACE_, uiLayout::prop(), and ptr.

Referenced by node_common_set_butfunc().

◆ node_buts_image_user()

◆ node_buts_image_views()

void blender::ed::space_node::node_buts_image_views ( uiLayout * layout,
bContext * ,
PointerRNA * ptr,
PointerRNA * imaptr )
static

◆ node_buts_math()

void blender::ed::space_node::node_buts_math ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 188 of file drawnode.cc.

References DEFAULT_FLAGS, uiLayout::prop(), and ptr.

Referenced by node_shader_set_butfunc(), and node_texture_set_butfunc().

◆ node_buts_mix_rgb()

void blender::ed::space_node::node_buts_mix_rgb ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_buts_normal()

void blender::ed::space_node::node_buts_normal ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_buts_output_shader()

void blender::ed::space_node::node_buts_output_shader ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 415 of file drawnode.cc.

References DEFAULT_FLAGS, uiLayout::prop(), and ptr.

Referenced by node_shader_set_butfunc().

◆ node_buts_texture()

void blender::ed::space_node::node_buts_texture ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_buts_time()

void blender::ed::space_node::node_buts_time ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 107 of file drawnode.cc.

References ptr, and uiTemplateCurveMapping().

Referenced by node_composit_set_butfunc(), and node_texture_set_butfunc().

◆ node_buttons_region_draw()

void blender::ed::space_node::node_buttons_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 884 of file space_node.cc.

References C, and ED_region_panels().

Referenced by ED_spacetype_node().

◆ node_buttons_region_init()

void blender::ed::space_node::node_buttons_region_init ( wmWindowManager * wm,
ARegion * region )
static

◆ node_can_be_inserted_on_link()

bool blender::ed::space_node::node_can_be_inserted_on_link ( bNodeTree & tree,
bNode & node,
const bNodeLink & link )
static

◆ node_can_sync_cache_get()

Map< int, bool > & blender::ed::space_node::node_can_sync_cache_get ( SpaceNode & snode)

◆ node_catalog_assets_draw()

◆ node_circleselect_exec()

◆ node_clear_recursive()

void blender::ed::space_node::node_clear_recursive ( bNode * node)
static

◆ node_clipboard_copy_exec()

◆ node_clipboard_paste_exec()

wmOperatorStatus blender::ed::space_node::node_clipboard_paste_exec ( bContext * C,
wmOperator * op )
static

Definition at line 390 of file clipboard.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), BKE_main_ensure_invariants(), BKE_report(), BKE_reportf(), BLI_rctf_cent_x(), BLI_rctf_cent_y(), C, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), CTX_data_main(), CTX_wm_manager(), CTX_wm_space_node(), DEG_relations_tag_update(), blender::ed::space_node::NodeClipboardItem::draw_rect, ED_preview_kill_jobs(), SpaceNode::edittree, blender::ed::space_node::ClipboardLink::from_node, blender::ed::space_node::ClipboardLink::from_socket, get_node_clipboard(), bNode::inputs, LIB_ID_CREATE_NO_USER_REFCOUNT, blender::ed::space_node::NodeClipboard::links, LISTBASE_FOREACH, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_default(), blender::ed::space_node::ClipboardLink::multi_input_sort_id, bNodeLink::multi_input_sort_id, bNode::name, blender::ed::space_node::NodeClipboardItem::node, NODE_ACTIVE, blender::bke::node_add_link(), blender::bke::node_copy_with_mapping(), blender::bke::node_declaration_ensure(), node_deselect_all(), blender::bke::node_find_socket(), blender::bke::node_free_node(), blender::bke::node_set_active(), blender::bke::node_set_selected(), blender::ed::space_node::NodeClipboard::nodes, OPERATOR_CANCELLED, OPERATOR_FINISHED, bNode::outputs, blender::ed::space_node::NodeClipboard::paste_update_node_id_references(), blender::ed::space_node::NodeClipboard::paste_validate_id_references(), wmOperator::ptr, remap_node_pairing(), wmOperator::reports, RNA_property_float_get_array(), RNA_property_is_set(), RNA_struct_find_property(), RPT_ERROR, RPT_WARNING, SOCK_DISPLAY_SHAPE_CIRCLE, SOCK_IN, SOCK_OUT, blender::ed::space_node::ClipboardLink::to_node, blender::ed::space_node::ClipboardLink::to_socket, tree, bNode::typeinfo, UI_SCALE_FAC, update_multi_input_indices_for_removed_links(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::values(), and blender::ed::space_node::NodeClipboardItem::was_active.

Referenced by node_clipboard_paste_invoke(), and NODE_OT_clipboard_paste().

◆ node_clipboard_paste_invoke()

wmOperatorStatus blender::ed::space_node::node_clipboard_paste_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_collapse_toggle_exec()

wmOperatorStatus blender::ed::space_node::node_collapse_toggle_exec ( bContext * C,
wmOperator *  )
static

◆ node_collection_drop_poll()

bool blender::ed::space_node::node_collection_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 1001 of file space_node.cc.

References C, ID_GR, UI_but_active_drop_name(), and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_color_drop_poll()

bool blender::ed::space_node::node_color_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 1021 of file space_node.cc.

References C, wmDrag::type, UI_but_active_drop_color(), and WM_DRAG_COLOR.

Referenced by node_dropboxes().

◆ node_common_set_butfunc()

◆ node_composit_buts_combsep_color()

void blender::ed::space_node::node_composit_buts_combsep_color ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_composit_buts_cryptomatte()

◆ node_composit_buts_cryptomatte_legacy()

void blender::ed::space_node::node_composit_buts_cryptomatte_legacy ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 559 of file drawnode.cc.

References col, uiLayout::column(), DEFAULT_FLAGS, IFACE_, ptr, and uiTemplateCryptoPicker().

Referenced by node_composit_set_butfunc().

◆ node_composit_buts_cryptomatte_legacy_ex()

void blender::ed::space_node::node_composit_buts_cryptomatte_legacy_ex ( uiLayout * layout,
bContext * ,
PointerRNA *  )
static

Definition at line 574 of file drawnode.cc.

References IFACE_, and uiLayout::op().

Referenced by node_composit_set_butfunc().

◆ node_composit_buts_huecorrect()

void blender::ed::space_node::node_composit_buts_huecorrect ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_composit_buts_image()

void blender::ed::space_node::node_composit_buts_image ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_composit_buts_image_ex()

void blender::ed::space_node::node_composit_buts_image_ex ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_composit_set_butfunc()

◆ node_context()

◆ node_copy_color_exec()

◆ node_create()

◆ node_cryptomatte_add_socket_exec()

◆ node_cryptomatte_remove_socket_exec()

◆ node_cursor()

◆ node_deactivate_viewer_exec()

◆ node_default_group_width_set_exec()

◆ node_default_group_width_set_poll()

bool blender::ed::space_node::node_default_group_width_set_poll ( bContext * C)
static

◆ node_delete_exec()

◆ node_delete_reconnect_exec()

◆ node_deselect_all()

◆ node_deselect_all_input_sockets()

void blender::ed::space_node::node_deselect_all_input_sockets ( bNodeTree & node_tree,
bool deselect_nodes )

Definition at line 240 of file node_select.cc.

References LISTBASE_FOREACH, and SELECT.

Referenced by node_make_link_exec().

◆ node_deselect_all_output_sockets()

void blender::ed::space_node::node_deselect_all_output_sockets ( bNodeTree & node_tree,
bool deselect_nodes )

Definition at line 270 of file node_select.cc.

References LISTBASE_FOREACH, and SELECT.

Referenced by node_make_link_exec().

◆ node_detach_exec()

◆ node_detach_recursive()

void blender::ed::space_node::node_detach_recursive ( bNodeTree & ntree,
MutableSpan< NodeDetachstate > detach_states,
bNode * node )
static

◆ node_displace_existing_links()

◆ node_draw()

void blender::ed::space_node::node_draw ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
ARegion & region,
const SpaceNode & snode,
bNodeTree & ntree,
bNode & node,
uiBlock & block,
bNodeInstanceKey key )
static

◆ node_draw_basis()

void blender::ed::space_node::node_draw_basis ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
const View2D & v2d,
const SpaceNode & snode,
bNodeTree & ntree,
const bNode & node,
uiBlock & block,
bNodeInstanceKey key )
static

Definition at line 2947 of file node_draw.cc.

References blender::ed::space_node::TreeDrawContext::active_geometry_nodes_viewer, blender::bke::all_zone_node_types(), BASIS_RAD, BLI_rctf_isect(), blender::ed::space_node::TreeDrawContext::bmain, But, ButToggle, C, bNode::color, blender::bke::idprop::create_group(), CTX_data_pointer_get(), View2D::cur, PointerRNA::data, blender::ed::space_node::TreeDrawContext::depsgraph, draw_node_details(), ELEM, blender::ui::Emboss, bNode::flag, SpaceNodeOverlay::flag, GEO_NODE_VIEWER, get_viewer_shortcut_icon(), GPU_line_width(), bNode::identifier, blender::wm::InvokeDefault, is_node_panels_supported(), Label, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), bNode::name, blender::ed::space_node::TreeDrawContext::nested_group_infos, NODE_ACTIVE, node_add_error_message_button(), blender::nodes::node_can_sync_sockets(), NODE_CUSTOM, NODE_CUSTOM_COLOR, NODE_CUSTOM_GROUP, NODE_DO_OUTPUT, node_draw_extra_info_panel(), node_draw_mute_line(), node_draw_node_group_indicator(), node_draw_panels(), node_draw_panels_background(), node_draw_shadow(), node_draw_sockets(), NODE_DY, node_get_colorid(), node_header_color_get(), node_header_custom_tooltip(), NODE_HEADER_ICON_SIZE, node_is_previewable(), blender::bke::node_label(), NODE_MARGIN_X, NODE_PREVIEW, node_preview_acquire_ibuf(), node_release_preview_ibuf(), node_toggle_button_cb(), node_undefined_or_unsupported(), NODE_WIDTH, blender::ui::None, NTREE_SHADER, ot, SpaceNode::overlay, padding(), POINTER_FROM_INT, blender::ed::space_node::TreeDrawContext::region, rgba_float_args_set(), RNA_string_set(), round_fl_to_int(), bNode::runtime, blender::ed::space_node::TreeDrawContext::scene, SELECT, SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_PREVIEWS, TH_ACTIVE, TH_BACK, TH_NODE, TH_NODE_OUTLINE, TH_REDALERT, TH_SELECT, bNodeTree::type, bNode::type_legacy, bNode::typeinfo, U, UI_block_draw(), UI_block_emboss_set(), UI_block_end_ex(), UI_but_flag_enable(), UI_but_func_set(), UI_BUT_INACTIVE, UI_but_operator_ptr_ensure(), UI_but_operator_set(), UI_CNR_ALL, UI_CNR_BOTTOM_LEFT, UI_CNR_BOTTOM_RIGHT, UI_CNR_TOP_LEFT, UI_CNR_TOP_RIGHT, UI_draw_roundbox_4fv(), UI_draw_roundbox_corner_set(), UI_GetColorPtrBlendAlpha4fv(), UI_GetThemeColor4fv(), UI_GetThemeColorBlendShade4fv(), UI_GetThemeColorShade4fv(), UI_UNIT_Y, uiDefBut(), uiDefIconBut(), USER_EXPERIMENTAL_TEST, blender::ed::space_node::TreeDrawContext::window, WM_operatortype_find(), rctf::xmax, rctf::xmin, rctf::ymax, rctf::ymin, and blender::bke::zone_type_by_node_type().

Referenced by node_draw().

◆ node_draw_buttons_group()

void blender::ed::space_node::node_draw_buttons_group ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

Definition at line 259 of file drawnode.cc.

References C, ptr, and uiTemplateIDBrowse().

Referenced by node_common_set_butfunc().

◆ node_draw_collapsed()

void blender::ed::space_node::node_draw_collapsed ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
const View2D & v2d,
const SpaceNode & snode,
bNodeTree & ntree,
bNode & node,
uiBlock & block )
static

Definition at line 3337 of file node_draw.cc.

References blender::ed::space_node::SpaceNode_Runtime::aspect, BASIS_RAD, BLI_rctf_cent_y(), BLI_rctf_size_x(), blender::ed::space_node::TreeDrawContext::bmain, ButToggle, C, blender::ed::space_node::TreeDrawContext::depsgraph, draw_node_details(), blender::ui::Emboss, bNode::flag, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_PRIM_LINES, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), bNode::identifier, immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniformThemeColorShadeAlpha(), immVertex2f(), immVertexFormat(), Label, NODE_ACTIVE, node_draw_extra_info_panel(), node_draw_mute_line(), node_draw_node_group_indicator(), node_draw_shadow(), node_draw_sockets(), NODE_DY, node_get_colorid(), node_header_color_get(), node_header_custom_tooltip(), blender::bke::node_label(), NODE_MARGIN_X, node_toggle_button_cb(), node_undefined_or_unsupported(), blender::ui::None, padding(), POINTER_FROM_INT, pos, blender::ed::space_node::TreeDrawContext::region, round_fl_to_int(), bNode::runtime, SpaceNode::runtime, blender::ed::space_node::TreeDrawContext::scene, SELECT, TH_ACTIVE, TH_BACK, TH_NODE_OUTLINE, TH_REDALERT, TH_SELECT, TH_TEXT, U, UI_block_draw(), UI_block_emboss_set(), UI_block_end_ex(), UI_but_flag_enable(), UI_but_func_set(), UI_BUT_INACTIVE, UI_CNR_ALL, UI_draw_roundbox_4fv(), UI_draw_roundbox_corner_set(), UI_GetThemeColor4fv(), UI_GetThemeColorBlendShade4fv(), UI_view2d_scale_get(), uiDefBut(), uiDefIconBut(), blender::ed::space_node::TreeDrawContext::window, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by node_draw().

◆ node_draw_extra_info_panel()

◆ node_draw_extra_info_panel_back()

void blender::ed::space_node::node_draw_extra_info_panel_back ( const bNode & node,
const rctf & extra_info_rect )
static

◆ node_draw_extra_info_row()

◆ node_draw_link()

void blender::ed::space_node::node_draw_link ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNodeLink & link,
bool selected )

◆ node_draw_link_bezier()

void blender::ed::space_node::node_draw_link_bezier ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNodeLink & link,
int th_col1,
int th_col2,
int th_col3,
bool selected )

Don't do shadows if th_col3 is -1.

Definition at line 2265 of file drawnode.cc.

References C, node_draw_link_bezier_ex(), node_link_bezier_points(), node_link_draw_is_visible(), and nodelink_get_draw_config().

Referenced by node_draw_link(), and node_draw_mute_line().

◆ node_draw_link_bezier_ex()

void blender::ed::space_node::node_draw_link_bezier_ex ( const SpaceNode & snode,
const NodeLinkDrawConfig & draw_config,
const std::array< float2, 4 > & points )
static

◆ node_draw_link_dragged()

void blender::ed::space_node::node_draw_link_dragged ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNodeLink & link )

◆ node_draw_link_end_marker()

void blender::ed::space_node::node_draw_link_end_marker ( const float2 center,
const float radius,
const ColorTheme4f & color )
static

◆ node_draw_link_end_markers()

void blender::ed::space_node::node_draw_link_end_markers ( const bNodeLink & link,
const NodeLinkDrawConfig & draw_config,
const std::array< float2, 4 > & points,
const bool outline )
static

◆ node_draw_mute_line()

void blender::ed::space_node::node_draw_mute_line ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNode & node )
static

◆ node_draw_node_group_indicator()

◆ node_draw_nodesocket()

◆ node_draw_nodetree()

◆ node_draw_panels()

◆ node_draw_panels_background()

◆ node_draw_preview()

◆ node_draw_preview_background()

◆ node_draw_shadow()

void blender::ed::space_node::node_draw_shadow ( const SpaceNode & snode,
const bNode & node,
const float radius,
const float alpha )
static

◆ node_draw_socket()

void blender::ed::space_node::node_draw_socket ( const bContext & C,
const bNodeTree & ntree,
const bNode & node,
PointerRNA & node_ptr,
uiBlock & block,
const bNodeSocket & sock,
const float outline_thickness,
const bool selected,
const float aspect )
static

◆ node_draw_sockets()

void blender::ed::space_node::node_draw_sockets ( const bContext & C,
uiBlock & block,
const SpaceNode & snode,
const bNodeTree & ntree,
const bNode & node )
static

◆ node_draw_space()

void blender::ed::space_node::node_draw_space ( const bContext & C,
ARegion & region )

Definition at line 4844 of file node_draw.cc.

References ARegion::alignment, C, copy_v2_v2(), CTX_wm_area(), CTX_wm_space_node(), CTX_wm_window(), blender::ed::space_node::SpaceNode_Runtime::cursor, bNodeTreePath::display_name, draw_background_color(), draw_nodespace_back_pix(), draw_nodetree(), draw_tree_path(), ED_annotation_draw_view2d(), ED_region_draw_cb_draw(), SpaceNode::edittree, wmWindow::eventstate, ARegion::flag, SpaceNode::flag, SpaceNodeOverlay::flag, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_DEPTH_NONE, GPU_depth_test(), GPU_framebuffer_bind_no_srgb(), GPU_line_smooth(), GPU_matrix_identity_set(), GPU_matrix_pop(), GPU_matrix_projection_get, GPU_matrix_projection_set, GPU_matrix_push(), GPU_scissor_test(), GPU_viewport_framebuffer_overlay_get(), bNodeTree::id, SpaceNode::id, ListBase::last, blender::ed::space_node::SpaceNode_Runtime::linkdrag, LISTBASE_FOREACH, ID::name, node_draw_link_dragged(), NODE_GRID_STEP_SIZE, blender::bke::NODE_INSTANCE_KEY_NONE, bNodeTreePath::nodetree, SpaceNode::nodetree, ARegion::overlap, SpaceNode::overlay, bNodeTreePath::parent_key, REGION_DRAW_POST_VIEW, REGION_DRAW_PRE_VIEW, ScrArea::regionbase, RGN_ALIGN_RIGHT, RGN_FLAG_HIDDEN, ARegion::runtime, SpaceNode::runtime, View2D::scroll, SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_PATH, snode_set_context(), snode_setup_v2d(), SNODE_SHOW_GPENCIL, SPACE_NODE, STREQ, STRNCPY_UTF8, TH_GRID, TH_NODE_GRID_LEVELS, SpaceNode::treepath, UI_GetThemeValueType(), UI_SCALE_FAC, UI_view2d_center_get(), UI_view2d_dot_grid_draw(), UI_view2d_region_to_view(), UI_view2d_scrollers_draw(), UI_view2d_view_ortho(), UI_view2d_view_restore(), UNLIKELY, ARegion::v2d, V2D_SCROLL_RIGHT, bNodeTree::view_center, bNodeTreePath::view_center, ARegion::winrct, ARegion::winx, ARegion::winy, WM_draw_region_get_viewport(), WM_gizmomap_draw(), WM_GIZMOMAP_DRAWSTEP_2D, wmOrtho2_pixelspace(), rcti::xmin, wmEvent::xy, and rcti::ymin.

Referenced by node_main_region_draw().

◆ node_draw_zones_and_frames()

void blender::ed::space_node::node_draw_zones_and_frames ( const ARegion & region,
const SpaceNode & snode,
const bNodeTree & ntree )
static

Definition at line 4277 of file node_draw.cc.

References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), b, BASIS_RAD, blender::Vector< T, InlineBufferCapacity, Allocator >::begin(), BLI_assert_unreachable, BLI_rctf_size_x(), MutableSpan< T >::copy_from(), CURVE_TYPE_POLY, blender::bke::CurvesGeometry::cyclic_for_write(), blender::Vector< T, InlineBufferCapacity, Allocator >::end(), blender::bke::CurvesGeometry::fill_curve_types(), blender::geometry::fillet_curves_poly(), find_bounds_by_zone_recursive(), MutableSpan< T >::first(), frame_node_draw_background(), frame_node_draw_outline(), blender::VArray< T >::from_single(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_PRIM_LINE_STRIP, GPU_PRIM_TRI_FAN, GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), i, immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1f(), immUniform2fv(), immUniformThemeColorAlpha(), immUniformThemeColorBlend(), immVertex3fv(), immVertexFormat(), blender::bke::bNodeTreeZone::index, blender::Span< T >::index_range(), blender::Bounds< T >::max, blender::Bounds< T >::min, blender::bounds::min_max(), NODE_BACKGROUND, blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::bNodeTreeZone::output_node_id, pos, blender::bke::CurvesGeometry::positions_for_write(), bNode::runtime, bNodeTree::runtime, blender::Span< T >::size(), TH_BACK, TH_REDALERT, bNode::type_legacy, U, UI_GetThemeColor4fv(), UI_view2d_scale_get(), ARegion::v2d, blender::bke::zone_type_by_node_type(), and blender::bke::bNodeTreeZones::zones.

Referenced by draw_nodetree().

◆ node_dropboxes()

◆ node_duplicate()

SpaceLink * blender::ed::space_node::node_duplicate ( SpaceLink * sl)
static

◆ node_duplicate_exec()

wmOperatorStatus blender::ed::space_node::node_duplicate_exec ( bContext * C,
wmOperator * op )
static

Definition at line 1406 of file node_edit.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), BKE_main_ensure_invariants(), BLI_addtail(), C, CTX_data_main(), CTX_wm_manager(), CTX_wm_space_node(), ED_preview_kill_jobs(), SpaceNode::edittree, bNode::flag, bNodeLink::flag, bNodeLink::fromnode, bNodeLink::fromsock, get_selected_nodes(), bNode::id, bNodeTree::id, ID_IS_LINKED, id_us_min(), id_us_plus(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::keys(), ListBase::last, LIB_ID_COPY_DEFAULT, bNodeTree::links, LISTBASE_FOREACH, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_cb(), MEM_callocN(), bNodeLink::multi_input_sort_id, NODE_ACTIVE, NODE_ACTIVE_TEXTURE, blender::bke::node_copy_with_mapping(), blender::bke::node_declaration_ensure(), node_duplicate_reparent_recursive(), NODE_SELECT, node_select_paired(), blender::bke::node_set_selected(), NODE_TEST, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, remap_node_pairing(), RNA_boolean_get(), SOCK_MULTI_INPUT, bNodeLink::tonode, bNodeLink::tosock, tree_draw_order_update(), U, update_multi_input_indices_for_removed_links(), USER_DUP_NTREE, and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::values().

Referenced by NODE_OT_duplicate().

◆ node_duplicate_reparent_recursive()

◆ node_editor_is_for_geometry_nodes_modifier()

bool blender::ed::space_node::node_editor_is_for_geometry_nodes_modifier ( const SpaceNode & snode,
const Object & object,
const NodesModifierData & nmd )

◆ node_error_highest_priority()

nodes::NodeWarningType blender::ed::space_node::node_error_highest_priority ( Span< geo_log::NodeWarning > warnings)
static

Definition at line 2150 of file node_draw.cc.

References blender::nodes::Info.

Referenced by node_add_error_message_button().

◆ node_errors_tooltip_fn()

std::string blender::ed::space_node::node_errors_tooltip_fn ( const Span< geo_log::NodeWarning > warnings)
static

◆ node_exit()

void blender::ed::space_node::node_exit ( wmWindowManager * wm,
ScrArea * area )
static

Definition at line 653 of file space_node.cc.

References ListBase::first, free_previews(), SpaceNode::runtime, and ScrArea::spacedata.

Referenced by ED_spacetype_node().

◆ node_find_create_data_block_value()

std::string blender::ed::space_node::node_find_create_data_block_value ( const bNode & node,
const ID & id )
static

◆ node_find_create_group_input_label()

std::string blender::ed::space_node::node_find_create_group_input_label ( const bNode & node,
const bNodeSocket & socket )
static

Definition at line 1410 of file node_select.cc.

References bNode::name, bNodeSocket::name, and TIP_.

Referenced by node_find_update_fn().

◆ node_find_create_node_label()

std::string blender::ed::space_node::node_find_create_node_label ( const bNodeTree & ntree,
const bNode & node )
static

Definition at line 1401 of file node_select.cc.

References bNode::name, and blender::bke::node_label().

Referenced by node_find_update_fn().

◆ node_find_create_string_value()

std::string blender::ed::space_node::node_find_create_string_value ( const bNode & node,
const StringRef str )
static

Definition at line 1415 of file node_select.cc.

References bNode::name, str, and TIP_.

Referenced by node_find_update_fn().

◆ node_find_exec_fn()

void blender::ed::space_node::node_find_exec_fn ( bContext * C,
void * ,
void * arg2 )
static

◆ node_find_frame_to_attach()

bNode * blender::ed::space_node::node_find_frame_to_attach ( ARegion & region,
bNodeTree & ntree,
const int2 mouse_xy )
static

◆ node_find_indicated_socket()

◆ node_find_linkable_socket()

bNodeSocket * blender::ed::space_node::node_find_linkable_socket ( const bNodeTree & ntree,
const bNode * node,
bNodeSocket * socket_to_match )
static

◆ node_find_menu()

◆ node_find_node_invoke()

wmOperatorStatus blender::ed::space_node::node_find_node_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ node_find_preview_socket()

bNodeSocket * blender::ed::space_node::node_find_preview_socket ( bNodeTree & ntree,
bNode & node )
static

Follows some rules to determine the previewed socket and node associated. We first seek for an output socket of the node, if none if found, the node is an output node, and thus seek for an input socket.

Definition at line 256 of file node_shader_preview.cc.

References ELEM, get_main_socket(), bNodeSocket::link, SOCK_FLOAT, SOCK_IN, SOCK_OUT, SOCK_RGBA, SOCK_VECTOR, and bNodeSocket::type.

Referenced by node_use_aov(), and shader_preview_startjob().

◆ node_find_update_fn()

◆ node_flag_toggle_exec()

void blender::ed::space_node::node_flag_toggle_exec ( SpaceNode * snode,
int toggle_flag,
const bool tag_update = false )
static

Toggles the flag on all selected nodes. If the flag is set on all nodes it is unset. If the flag is not set on all nodes, it is set. If tag_update is true, the nodes will be tagged for a property change update.

Definition at line 1664 of file node_edit.cc.

References BKE_ntree_update_tag_node_property(), SpaceNode::edittree, node_is_previewable(), NODE_OPTIONS, NODE_PREVIEW, and SELECT.

Referenced by node_collapse_toggle_exec(), node_options_toggle_exec(), and node_preview_toggle_exec().

◆ node_foreach_id()

◆ node_frame_rect_inside()

◆ node_frame_select_isect_mouse()

bool blender::ed::space_node::node_frame_select_isect_mouse ( const SpaceNode & snode,
const bNode & node,
const float2 & mouse )
static

Definition at line 123 of file node_select.cc.

References BLI_rctf_isect_pt(), node_frame_rect_inside(), and bNode::runtime.

Referenced by node_under_mouse_get().

◆ node_free()

void blender::ed::space_node::node_free ( SpaceLink * sl)
static

Definition at line 643 of file space_node.cc.

References BLI_freelistN(), SpaceNode::runtime, and SpaceNode::treepath.

Referenced by ED_spacetype_node().

◆ node_from_view()

float2 blender::ed::space_node::node_from_view ( const float2 & co)

Definition at line 394 of file node_draw.cc.

References UI_SCALE_FAC.

Referenced by calc_node_frame_dimensions().

◆ node_geometry_add_attribute_search_button()

◆ node_geometry_add_layer_search_button()

◆ node_geometry_add_volume_grid_search_button()

◆ node_get_accessed_attributes_row()

◆ node_get_colorid()

◆ node_get_compositor_extra_info()

void blender::ed::space_node::node_get_compositor_extra_info ( TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node,
Vector< NodeExtraInfoRow > & rows )
static

◆ node_get_execution_time()

std::optional< std::chrono::nanoseconds > blender::ed::space_node::node_get_execution_time ( const TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

◆ node_get_execution_time_label()

std::string blender::ed::space_node::node_get_execution_time_label ( TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

Definition at line 2408 of file node_draw.cc.

References node_get_execution_time().

Referenced by node_get_execution_time_label_row().

◆ node_get_execution_time_label_row()

std::optional< NodeExtraInfoRow > blender::ed::space_node::node_get_execution_time_label_row ( TreeDrawContext & tree_draw_ctx,
const SpaceNode & snode,
const bNode & node )
static

◆ node_get_extra_info()

◆ node_get_resize_cursor()

int blender::ed::space_node::node_get_resize_cursor ( NodeResizeDirection directions)

◆ node_get_resize_direction()

◆ NODE_GGT_backdrop_box_mask()

◆ NODE_GGT_backdrop_corner_pin()

◆ NODE_GGT_backdrop_crop()

◆ NODE_GGT_backdrop_ellipse_mask()

◆ NODE_GGT_backdrop_glare()

◆ NODE_GGT_backdrop_split()

◆ NODE_GGT_backdrop_transform()

◆ node_gizmo_calc_matrix_space()

void blender::ed::space_node::node_gizmo_calc_matrix_space ( const SpaceNode * snode,
const ARegion * region,
float matrix_space[4][4] )
static

◆ node_gizmo_calc_matrix_space_with_image_dims()

void blender::ed::space_node::node_gizmo_calc_matrix_space_with_image_dims ( const SpaceNode * snode,
const ARegion * region,
const float2 & image_dims,
const float2 & image_offset,
float matrix_space[4][4] )
static

◆ node_gizmo_is_set_visible()

◆ node_gizmo_safe_calc_dims()

◆ node_group_add_poll()

bool blender::ed::space_node::node_group_add_poll ( const bNodeTree & node_tree,
const bNodeTree & node_group,
ReportList & reports )
static

◆ node_group_drop_copy()

void blender::ed::space_node::node_group_drop_copy ( bContext * C,
wmDrag * drag,
wmDropBox * drop )
static

◆ node_group_drop_poll()

◆ node_group_edit_exec()

◆ node_group_enter_exit_invoke()

◆ node_group_get_active()

bNode * blender::ed::space_node::node_group_get_active ( bContext * C,
const StringRef node_idname )
static

◆ node_group_idname()

◆ node_group_insert_exec()

◆ node_group_make_exec()

◆ node_group_make_from_node_declaration()

◆ node_group_make_from_nodes()

bNode * blender::ed::space_node::node_group_make_from_nodes ( const bContext & C,
bNodeTree & ntree,
const VectorSet< bNode * > & nodes_to_group,
const StringRef ntype,
const StringRef ntreetype )
static

◆ node_group_make_insert_selected()

void blender::ed::space_node::node_group_make_insert_selected ( const bContext & C,
bNodeTree & ntree,
bNode * gnode,
const VectorSet< bNode * > & nodes_to_move )
static

Definition at line 988 of file node_group.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), add_interface_from_socket(), blender::bke::node_interface::add_interface_socket_from_node(), bNodeTree::adt, animation_basepath_change_free(), animation_basepath_change_new(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_animdata_transfer_by_basepath(), BKE_main_ensure_invariants(), BKE_ntree_update_tag_link_added(), BKE_ntree_update_tag_link_removed(), BKE_ntree_update_tag_node_new(), BKE_ntree_update_tag_node_removed(), BLI_addtail(), BLI_assert, BLI_remlink(), C, blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), CTX_data_main(), ELEM, bNodeLink::fromnode, bNodeLink::fromsock, get_min_max_of_nodes(), bNode::id, bNodeTree::id, bNode::identifier, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), bNodeTree::links, LISTBASE_FOREACH_MUTABLE, bNode::location, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_default(), max, blender::math::midpoint(), min, blender::bke::node_add_link(), blender::bke::node_add_static_node(), node_deselect_all(), blender::bke::node_detach_node(), node_group_find_input_socket(), node_group_find_output_socket(), NODE_GROUP_INPUT, node_group_input_find_socket(), NODE_GROUP_OUTPUT, node_group_output_find_socket(), blender::bke::node_link_is_hidden(), blender::bke::node_rebuild_id_vector(), blender::bke::node_remove_link(), blender::bke::node_unique_id(), blender::bke::node_unique_name(), bNodeTree::nodes, NTREE_COMPOSIT, NTREE_GEOMETRY, ptr, remap_pairing(), RNA_path_from_ID_to_struct(), RNA_pointer_create_discrete(), blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), SOCK_IN, bNodeTree::type, blender::bke::node_field_inferencing::update_field_inferencing(), update_nested_node_refs_after_moving_nodes_into_group(), blender::nodes::update_node_declaration_and_sockets(), and blender::bke::node_structure_type_inferencing::update_structure_type_interface().

Referenced by node_group_insert_exec(), and node_group_make_from_nodes().

◆ node_group_make_test_selected()

◆ node_group_make_wrapper()

◆ node_group_operator_active_poll()

bool blender::ed::space_node::node_group_operator_active_poll ( bContext * C)
static

◆ node_group_operator_editable()

◆ node_group_separate_exec()

◆ node_group_separate_invoke()

◆ node_group_separate_selected()

bool blender::ed::space_node::node_group_separate_selected ( Main & bmain,
bNodeTree & ntree,
bNodeTree & ngroup,
const float2 & offset,
const bool make_copy )
static
Returns
True if successful.

Definition at line 567 of file node_group.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), bNodeTree::adt, animation_basepath_change_free(), animation_basepath_change_new(), BKE_animdata_transfer_by_basepath(), BKE_ntree_update_tag_all(), BLI_addtail(), BLI_remlink(), blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), bNode::flag, get_selected_nodes(), bNodeTree::id, bNode::identifier, LIB_ID_COPY_DEFAULT, bNodeTree::links, LISTBASE_FOREACH_MUTABLE, bNode::location, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), blender::bke::node_add_link(), blender::bke::node_copy_with_mapping(), blender::bke::node_declaration_ensure(), node_deselect_all(), blender::bke::node_detach_node(), blender::bke::node_rebuild_id_vector(), blender::bke::node_remove_link(), NODE_SELECT, blender::bke::node_unique_id(), blender::bke::node_unique_name(), bNodeTree::nodes, bNode::parent, ptr, remap_pairing(), blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_if(), RNA_path_from_ID_to_struct(), RNA_pointer_create_discrete(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::values().

Referenced by node_group_separate_exec().

◆ node_group_ungroup()

◆ node_group_ungroup_exec()

◆ node_has_hidden_sockets()

bool blender::ed::space_node::node_has_hidden_sockets ( bNode * node)

Definition at line 1156 of file node_edit.cc.

References bNode::inputs, LISTBASE_FOREACH, bNode::outputs, and SOCK_HIDDEN.

Referenced by node_socket_toggle_exec().

◆ node_header_color_get()

◆ node_header_custom_tooltip()

void blender::ed::space_node::node_header_custom_tooltip ( const bNode & node,
uiBut & but )
static

◆ node_header_region_draw()

void blender::ed::space_node::node_header_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 1312 of file space_node.cc.

References C, ED_region_header(), and snode_set_context().

Referenced by ED_spacetype_node().

◆ node_header_region_init()

void blender::ed::space_node::node_header_region_init ( wmWindowManager * ,
ARegion * region )
static

Definition at line 1307 of file space_node.cc.

References ED_region_header_init().

Referenced by ED_spacetype_node().

◆ node_id_drop_copy()

void blender::ed::space_node::node_id_drop_copy ( bContext * C,
wmDrag * drag,
wmDropBox * drop )
static

◆ node_id_im_drop_copy()

void blender::ed::space_node::node_id_im_drop_copy ( bContext * C,
wmDrag * drag,
wmDropBox * drop )
static

◆ node_id_im_drop_poll()

bool blender::ed::space_node::node_id_im_drop_poll ( bContext * ,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 1006 of file space_node.cc.

References ID_IM, and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_id_remap() [1/2]

◆ node_id_remap() [2/2]

void blender::ed::space_node::node_id_remap ( ScrArea * ,
SpaceLink * slink,
const blender::bke::id::IDRemapper & mappings )
static

Definition at line 1563 of file space_node.cc.

References blender::bke::id::IDRemapper::iter(), and node_id_remap().

◆ node_import_file_drop_copy()

void blender::ed::space_node::node_import_file_drop_copy ( bContext * ,
wmDrag * drag,
wmDropBox * drop )
static

◆ node_import_file_drop_poll()

bool blender::ed::space_node::node_import_file_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent *  )
static

◆ node_init()

void blender::ed::space_node::node_init ( wmWindowManager * ,
ScrArea *  )
static

Definition at line 651 of file space_node.cc.

Referenced by ED_spacetype_node().

◆ node_input_from_rect()

void blender::ed::space_node::node_input_from_rect ( bNode * node,
const rctf * rect,
const float2 & dims,
const float2 & offset )
static

◆ node_input_to_rect()

void blender::ed::space_node::node_input_to_rect ( const bNode * node,
const float2 & dims,
const float2 offset,
rctf * r_rect )
static

◆ node_insert_offset_invoke()

◆ node_insert_offset_modal()

◆ node_insert_on_frame_flag_clear()

void blender::ed::space_node::node_insert_on_frame_flag_clear ( SpaceNode & snode)

◆ node_insert_on_frame_flag_set()

void blender::ed::space_node::node_insert_on_frame_flag_set ( bContext & C,
SpaceNode & snode,
const int2 & cursor )

◆ node_insert_on_link_flags()

◆ node_insert_on_link_flags_clear()

◆ node_insert_on_link_flags_set()

◆ node_is_previewable()

bool blender::ed::space_node::node_is_previewable ( const SpaceNode & snode,
const bNodeTree & ntree,
const bNode & node )

◆ node_join_attach_recursive()

◆ node_join_in_frame_exec()

◆ node_join_in_frame_invoke()

◆ node_join_nodes_exec()

◆ node_keymap()

void blender::ed::space_node::node_keymap ( wmKeyConfig * keyconf)

◆ node_lasso_select_exec()

◆ node_lasso_select_invoke()

wmOperatorStatus blender::ed::space_node::node_lasso_select_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_link_bezier_points()

std::array< float2, 4 > blender::ed::space_node::node_link_bezier_points ( const bNodeLink & link)
static

◆ node_link_bezier_points_dragged()

◆ node_link_bezier_points_evaluated()

void blender::ed::space_node::node_link_bezier_points_evaluated ( const bNodeLink & link,
std::array< float2, NODE_LINK_RESOL+1 > & coords )

◆ node_link_calculate_multi_input_position()

float2 blender::ed::space_node::node_link_calculate_multi_input_position ( const float2 & socket_position,
const int index,
const int total_inputs )

◆ node_link_cancel()

◆ node_link_dim_factor()

◆ node_link_draw_is_visible()

bool blender::ed::space_node::node_link_draw_is_visible ( const View2D & v2d,
const std::array< float2, 4 > & points )
static

Definition at line 1672 of file drawnode.cc.

References View2D::cur, max_ffff(), min_ffff(), x, rctf::xmax, and rctf::xmin.

Referenced by node_draw_link_bezier().

◆ node_link_find_socket()

◆ node_link_init()

◆ node_link_insert_offset_chain_cb()

bool blender::ed::space_node::node_link_insert_offset_chain_cb ( bNode * fromnode,
bNode * tonode,
void * userdata,
const bool reversed )
static

Callback that applies NodeInsertOfsData.offset_x to a node or its parent, considering the logic needed for offsetting nodes after link insert

Definition at line 2886 of file node_relationships.cc.

References data, and node_offset_apply().

Referenced by node_link_insert_offset_ntree().

◆ node_link_insert_offset_ntree()

◆ node_link_invoke()

◆ node_link_is_field_link()

bool blender::ed::space_node::node_link_is_field_link ( const SpaceNode & snode,
const bNodeLink & link )
static

Definition at line 2127 of file drawnode.cc.

References SpaceNode::edittree, bNodeLink::fromsock, NTREE_GEOMETRY, and tree.

Referenced by nodelink_get_draw_config().

◆ node_link_is_gizmo_link()

bool blender::ed::space_node::node_link_is_gizmo_link ( const SpaceNode & snode,
const bNodeLink & link )
static

◆ node_link_is_hidden_or_dimmed()

bool blender::ed::space_node::node_link_is_hidden_or_dimmed ( const View2D & v2d,
const bNodeLink & link )

◆ node_link_item_apply()

void blender::ed::space_node::node_link_item_apply ( bNodeTree * ntree,
bNode * node,
NodeLinkItem * item )
static

◆ node_link_item_compare()

bool blender::ed::space_node::node_link_item_compare ( bNode * node,
NodeLinkItem * item )
static

Definition at line 81 of file node_templates.cc.

References bNode::id, and blender::ed::space_node::NodeLinkItem::ngroup.

Referenced by node_socket_add_replace().

◆ node_link_item_init()

◆ node_link_modal()

◆ node_link_modal_keymap()

wmKeyMap * blender::ed::space_node::node_link_modal_keymap ( wmKeyConfig * keyconf)

◆ node_main_region_draw()

void blender::ed::space_node::node_main_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 949 of file space_node.cc.

References C, and node_draw_space().

Referenced by ED_spacetype_node().

◆ node_main_region_init()

◆ node_make_link_exec()

◆ node_mask_drop_poll()

bool blender::ed::space_node::node_mask_drop_poll ( bContext * ,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 1011 of file space_node.cc.

References ID_MSK, and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_material_drop_poll()

bool blender::ed::space_node::node_material_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 1016 of file space_node.cc.

References C, ID_MA, UI_but_active_drop_name(), and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_menu_column_foreach_cb()

void blender::ed::space_node::node_menu_column_foreach_cb ( void * calldata,
int nclass,
const StringRefNull name )
static

◆ node_mouse_select()

bool blender::ed::space_node::node_mouse_select ( bContext * C,
wmOperator * op,
const int2 mval,
const SelectPick_Params & params )
static

◆ node_mute_exec()

◆ node_object_drop_poll()

bool blender::ed::space_node::node_object_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 996 of file space_node.cc.

References C, ID_OB, UI_but_active_drop_name(), and WM_drag_is_ID_type().

Referenced by node_dropboxes().

◆ node_offset_apply()

void blender::ed::space_node::node_offset_apply ( bNode & node,
const float offset_x )
static

◆ node_operatortypes()

void blender::ed::space_node::node_operatortypes ( )

Definition at line 23 of file node_ops.cc.

References NODE_OT_activate_viewer(), NODE_OT_add_collection(), NODE_OT_add_color(), NODE_OT_add_group(), NODE_OT_add_group_asset(), NODE_OT_add_group_input_node(), NODE_OT_add_image(), NODE_OT_add_import_node(), NODE_OT_add_mask(), NODE_OT_add_material(), NODE_OT_add_object(), NODE_OT_add_reroute(), NODE_OT_attach(), NODE_OT_backimage_fit(), NODE_OT_backimage_move(), NODE_OT_backimage_sample(), NODE_OT_backimage_zoom(), NODE_OT_clear_viewer_border(), NODE_OT_clipboard_copy(), NODE_OT_clipboard_paste(), NODE_OT_collapse_toggle(), NODE_OT_cryptomatte_layer_add(), NODE_OT_cryptomatte_layer_remove(), NODE_OT_deactivate_viewer(), NODE_OT_default_group_width_set(), NODE_OT_delete(), NODE_OT_delete_reconnect(), NODE_OT_detach(), NODE_OT_duplicate(), NODE_OT_duplicate_compositing_node_group(), NODE_OT_find_node(), NODE_OT_group_edit(), NODE_OT_group_enter_exit(), NODE_OT_group_insert(), NODE_OT_group_make(), NODE_OT_group_separate(), NODE_OT_group_ungroup(), NODE_OT_hide_socket_toggle(), NODE_OT_insert_offset(), NODE_OT_join(), NODE_OT_join_nodes(), NODE_OT_link(), NODE_OT_link_make(), NODE_OT_link_viewer(), NODE_OT_links_cut(), NODE_OT_links_detach(), NODE_OT_links_mute(), NODE_OT_mute_toggle(), NODE_OT_new_compositing_node_group(), NODE_OT_new_compositor_sequencer_node_group(), NODE_OT_new_node_tree(), NODE_OT_node_copy_color(), NODE_OT_options_toggle(), NODE_OT_parent_set(), NODE_OT_preview_toggle(), NODE_OT_read_viewlayers(), NODE_OT_render_changed(), NODE_OT_resize(), NODE_OT_select(), NODE_OT_select_all(), NODE_OT_select_box(), NODE_OT_select_circle(), NODE_OT_select_grouped(), NODE_OT_select_lasso(), NODE_OT_select_linked_from(), NODE_OT_select_linked_to(), NODE_OT_select_same_type_step(), NODE_OT_shader_script_update(), NODE_OT_sockets_sync(), NODE_OT_swap_group_asset(), NODE_OT_test_inlining_shader_nodes(), NODE_OT_toggle_viewer(), NODE_OT_view_all(), NODE_OT_view_selected(), NODE_OT_viewer_border(), blender::bke::node_types_get(), and WM_operatortype_append().

Referenced by ED_spacetype_node().

◆ node_options_toggle_exec()

wmOperatorStatus blender::ed::space_node::node_options_toggle_exec ( bContext * C,
wmOperator *  )
static

◆ node_or_socket_isect_event()

bool blender::ed::space_node::node_or_socket_isect_event ( const bContext & C,
const wmEvent & event )

Definition at line 118 of file node_select.cc.

References C, and is_event_over_node_or_socket().

Referenced by sample_invoke().

◆ NODE_OT_activate_viewer()

void blender::ed::space_node::NODE_OT_activate_viewer ( wmOperatorType * ot)

◆ NODE_OT_add_collection()

void blender::ed::space_node::NODE_OT_add_collection ( wmOperatorType * ot)

◆ NODE_OT_add_color()

void blender::ed::space_node::NODE_OT_add_color ( wmOperatorType * ot)

◆ NODE_OT_add_group()

◆ NODE_OT_add_group_asset()

◆ NODE_OT_add_group_input_node()

◆ NODE_OT_add_image()

◆ NODE_OT_add_import_node()

◆ NODE_OT_add_mask()

void blender::ed::space_node::NODE_OT_add_mask ( wmOperatorType * ot)

◆ NODE_OT_add_material()

void blender::ed::space_node::NODE_OT_add_material ( wmOperatorType * ot)

◆ NODE_OT_add_object()

void blender::ed::space_node::NODE_OT_add_object ( wmOperatorType * ot)

◆ NODE_OT_add_reroute()

◆ NODE_OT_attach()

void blender::ed::space_node::NODE_OT_attach ( wmOperatorType * ot)

◆ NODE_OT_backimage_fit()

void blender::ed::space_node::NODE_OT_backimage_fit ( wmOperatorType * ot)

◆ NODE_OT_backimage_move()

void blender::ed::space_node::NODE_OT_backimage_move ( wmOperatorType * ot)

◆ NODE_OT_backimage_sample()

void blender::ed::space_node::NODE_OT_backimage_sample ( wmOperatorType * ot)

◆ NODE_OT_backimage_zoom()

void blender::ed::space_node::NODE_OT_backimage_zoom ( wmOperatorType * ot)

◆ NODE_OT_clear_viewer_border()

void blender::ed::space_node::NODE_OT_clear_viewer_border ( wmOperatorType * ot)

◆ NODE_OT_clipboard_copy()

void blender::ed::space_node::NODE_OT_clipboard_copy ( wmOperatorType * ot)
Note
clipboard_cut is a simple macro of copy + delete.

Definition at line 372 of file clipboard.cc.

References ED_operator_node_active(), node_clipboard_copy_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, and ot.

Referenced by node_operatortypes().

◆ NODE_OT_clipboard_paste()

◆ NODE_OT_collapse_toggle()

void blender::ed::space_node::NODE_OT_collapse_toggle ( wmOperatorType * ot)

◆ NODE_OT_cryptomatte_layer_add()

void blender::ed::space_node::NODE_OT_cryptomatte_layer_add ( wmOperatorType * ot)

◆ NODE_OT_cryptomatte_layer_remove()

void blender::ed::space_node::NODE_OT_cryptomatte_layer_remove ( wmOperatorType * ot)

◆ NODE_OT_deactivate_viewer()

void blender::ed::space_node::NODE_OT_deactivate_viewer ( wmOperatorType * ot)

◆ NODE_OT_default_group_width_set()

void blender::ed::space_node::NODE_OT_default_group_width_set ( wmOperatorType * ot)

◆ NODE_OT_delete()

void blender::ed::space_node::NODE_OT_delete ( wmOperatorType * ot)

◆ NODE_OT_delete_reconnect()

void blender::ed::space_node::NODE_OT_delete_reconnect ( wmOperatorType * ot)

◆ NODE_OT_detach()

void blender::ed::space_node::NODE_OT_detach ( wmOperatorType * ot)

◆ NODE_OT_duplicate()

void blender::ed::space_node::NODE_OT_duplicate ( wmOperatorType * ot)

◆ NODE_OT_duplicate_compositing_node_group()

void blender::ed::space_node::NODE_OT_duplicate_compositing_node_group ( wmOperatorType * ot)

Definition at line 1784 of file node_add.cc.

References duplicate_compositing_node_group_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, and ot.

Referenced by node_operatortypes().

◆ NODE_OT_find_node()

void blender::ed::space_node::NODE_OT_find_node ( wmOperatorType * ot)

◆ NODE_OT_group_edit()

void blender::ed::space_node::NODE_OT_group_edit ( wmOperatorType * ot)

◆ NODE_OT_group_enter_exit()

void blender::ed::space_node::NODE_OT_group_enter_exit ( wmOperatorType * ot)

◆ NODE_OT_group_insert()

void blender::ed::space_node::NODE_OT_group_insert ( wmOperatorType * ot)

◆ NODE_OT_group_make()

void blender::ed::space_node::NODE_OT_group_make ( wmOperatorType * ot)

◆ NODE_OT_group_separate()

void blender::ed::space_node::NODE_OT_group_separate ( wmOperatorType * ot)

◆ NODE_OT_group_ungroup()

void blender::ed::space_node::NODE_OT_group_ungroup ( wmOperatorType * ot)

◆ NODE_OT_hide_socket_toggle()

void blender::ed::space_node::NODE_OT_hide_socket_toggle ( wmOperatorType * ot)

◆ NODE_OT_insert_offset()

void blender::ed::space_node::NODE_OT_insert_offset ( wmOperatorType * ot)

◆ NODE_OT_join()

void blender::ed::space_node::NODE_OT_join ( wmOperatorType * ot)

◆ NODE_OT_join_nodes()

void blender::ed::space_node::NODE_OT_join_nodes ( wmOperatorType * ot)

◆ NODE_OT_link()

◆ NODE_OT_link_make()

void blender::ed::space_node::NODE_OT_link_make ( wmOperatorType * ot)

◆ NODE_OT_link_viewer()

void blender::ed::space_node::NODE_OT_link_viewer ( wmOperatorType * ot)

◆ NODE_OT_links_cut()

◆ NODE_OT_links_detach()

void blender::ed::space_node::NODE_OT_links_detach ( wmOperatorType * ot)

◆ NODE_OT_links_mute()

◆ NODE_OT_mute_toggle()

void blender::ed::space_node::NODE_OT_mute_toggle ( wmOperatorType * ot)

Definition at line 2076 of file node_edit.cc.

References ED_operator_node_editable(), node_mute_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, and ot.

Referenced by node_operatortypes().

◆ NODE_OT_new_compositing_node_group()

void blender::ed::space_node::NODE_OT_new_compositing_node_group ( wmOperatorType * ot)

◆ NODE_OT_new_compositor_sequencer_node_group()

◆ NODE_OT_new_node_tree()

void blender::ed::space_node::NODE_OT_new_node_tree ( wmOperatorType * ot)

◆ NODE_OT_node_copy_color()

void blender::ed::space_node::NODE_OT_node_copy_color ( wmOperatorType * ot)

◆ NODE_OT_options_toggle()

void blender::ed::space_node::NODE_OT_options_toggle ( wmOperatorType * ot)

◆ NODE_OT_parent_set()

void blender::ed::space_node::NODE_OT_parent_set ( wmOperatorType * ot)

◆ NODE_OT_preview_toggle()

void blender::ed::space_node::NODE_OT_preview_toggle ( wmOperatorType * ot)

Definition at line 1775 of file node_edit.cc.

References node_preview_toggle_exec(), node_previewable(), OPTYPE_REGISTER, OPTYPE_UNDO, and ot.

Referenced by node_operatortypes().

◆ NODE_OT_read_viewlayers()

void blender::ed::space_node::NODE_OT_read_viewlayers ( wmOperatorType * ot)

Definition at line 1589 of file node_edit.cc.

References composite_node_active(), node_read_viewlayers_exec(), and ot.

Referenced by node_operatortypes().

◆ NODE_OT_render_changed()

void blender::ed::space_node::NODE_OT_render_changed ( wmOperatorType * ot)

Definition at line 1639 of file node_edit.cc.

References composite_node_active(), node_render_changed_exec(), and ot.

Referenced by node_operatortypes().

◆ NODE_OT_resize()

void blender::ed::space_node::NODE_OT_resize ( wmOperatorType * ot)

◆ NODE_OT_select()

◆ NODE_OT_select_all()

void blender::ed::space_node::NODE_OT_select_all ( wmOperatorType * ot)

◆ NODE_OT_select_box()

◆ NODE_OT_select_circle()

◆ NODE_OT_select_grouped()

◆ NODE_OT_select_lasso()

◆ NODE_OT_select_linked_from()

void blender::ed::space_node::NODE_OT_select_linked_from ( wmOperatorType * ot)

◆ NODE_OT_select_linked_to()

void blender::ed::space_node::NODE_OT_select_linked_to ( wmOperatorType * ot)

◆ NODE_OT_select_same_type_step()

void blender::ed::space_node::NODE_OT_select_same_type_step ( wmOperatorType * ot)

◆ NODE_OT_shader_script_update()

void blender::ed::space_node::NODE_OT_shader_script_update ( wmOperatorType * ot)

◆ NODE_OT_sockets_sync()

◆ NODE_OT_swap_group_asset()

◆ NODE_OT_test_inlining_shader_nodes()

void blender::ed::space_node::NODE_OT_test_inlining_shader_nodes ( wmOperatorType * ot)

◆ NODE_OT_toggle_viewer()

void blender::ed::space_node::NODE_OT_toggle_viewer ( wmOperatorType * ot)

◆ NODE_OT_view_all()

void blender::ed::space_node::NODE_OT_view_all ( wmOperatorType * ot)

Definition at line 153 of file node_view.cc.

References node_view_all_exec(), ot, and space_node_active_view_poll().

Referenced by node_operatortypes().

◆ NODE_OT_view_selected()

void blender::ed::space_node::NODE_OT_view_selected ( wmOperatorType * ot)

Definition at line 186 of file node_view.cc.

References node_view_selected_exec(), ot, and space_node_active_view_poll().

Referenced by node_operatortypes().

◆ NODE_OT_viewer_border()

◆ node_panel_drop_copy()

◆ node_panel_drop_poll()

bool blender::ed::space_node::node_panel_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent * event )
static

◆ node_panel_drop_tooltip()

std::string blender::ed::space_node::node_panel_drop_tooltip ( bContext * ,
wmDrag * drag,
const int [2],
wmDropBox *  )
static

◆ node_panel_toggle_button_cb()

void blender::ed::space_node::node_panel_toggle_button_cb ( bContext * C,
void * panel_state_argv,
void * ntree_argv )
static

◆ node_parent_set_exec()

◆ node_parents_offset_flag_enable_cb()

bool blender::ed::space_node::node_parents_offset_flag_enable_cb ( bNode * parent,
void *  )
static

Definition at line 2863 of file node_relationships.cc.

References bNode::flag, and NODE_TEST.

Referenced by node_link_insert_offset_ntree().

◆ node_preview_acquire_ibuf()

◆ node_preview_toggle_exec()

◆ node_previewable()

bool blender::ed::space_node::node_previewable ( bContext * C)
static

◆ node_property_update_default()

void blender::ed::space_node::node_property_update_default ( Main * bmain,
Scene * ,
PointerRNA * ptr )
static

◆ node_read_viewlayers_exec()

◆ node_region_listener()

◆ node_release_preview_ibuf()

void blender::ed::space_node::node_release_preview_ibuf ( NestedTreePreviews & tree_previews)

◆ node_remove_existing_links_if_needed()

◆ node_remove_linked()

void blender::ed::space_node::node_remove_linked ( Main * bmain,
bNodeTree * ntree,
bNode * rem_node )
static

◆ node_render_changed_exec()

◆ node_resize_cancel()

void blender::ed::space_node::node_resize_cancel ( bContext * C,
wmOperator * op )
static

Definition at line 1128 of file node_edit.cc.

References C, and node_resize_exit().

Referenced by NODE_OT_resize().

◆ node_resize_exit()

◆ node_resize_init()

◆ node_resize_invoke()

◆ node_resize_modal()

◆ node_resize_modal_keymap()

wmKeyMap * blender::ed::space_node::node_resize_modal_keymap ( wmKeyConfig * keyconf)

◆ node_select_all_exec()

◆ node_select_exec()

◆ node_select_grouped_color()

bool blender::ed::space_node::node_select_grouped_color ( bNodeTree & node_tree,
bNode & node_act )
static

◆ node_select_grouped_exec()

◆ node_select_grouped_name()

bool blender::ed::space_node::node_select_grouped_name ( bNodeTree & node_tree,
bNode & node_act,
const bool from_right )
static

◆ node_select_grouped_type()

bool blender::ed::space_node::node_select_grouped_type ( bNodeTree & node_tree,
bNode & node_act )
static

Definition at line 336 of file node_select.cc.

References blender::bke::node_set_selected(), SELECT, and bNode::type_legacy.

Referenced by node_select_grouped_exec().

◆ node_select_invoke()

wmOperatorStatus blender::ed::space_node::node_select_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ node_select_linked_from_exec()

◆ node_select_linked_to_exec()

◆ node_select_paired()

void blender::ed::space_node::node_select_paired ( bNodeTree & node_tree)

Select nodes that are paired to a selected node.

Definition at line 300 of file node_select.cc.

References blender::bke::all_zone_types(), and NODE_SELECT.

Referenced by node_clipboard_copy_exec(), node_delete_exec(), node_delete_reconnect_exec(), and node_duplicate_exec().

◆ node_select_same_type_step_exec()

◆ node_select_single()

◆ node_set_cursor()

◆ node_set_hidden_sockets()

void blender::ed::space_node::node_set_hidden_sockets ( bNode * node,
int set )

◆ node_shader_buts_displacement()

void blender::ed::space_node::node_shader_buts_displacement ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 405 of file drawnode.cc.

References DEFAULT_FLAGS, uiLayout::prop(), and ptr.

Referenced by node_shader_set_butfunc().

◆ node_shader_buts_glossy()

void blender::ed::space_node::node_shader_buts_glossy ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 410 of file drawnode.cc.

References DEFAULT_FLAGS, uiLayout::prop(), and ptr.

Referenced by node_shader_set_butfunc().

◆ node_shader_buts_scatter()

void blender::ed::space_node::node_shader_buts_scatter ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 420 of file drawnode.cc.

References DEFAULT_FLAGS, uiLayout::prop(), and ptr.

Referenced by node_shader_set_butfunc().

◆ node_shader_buts_tex_environment()

void blender::ed::space_node::node_shader_buts_tex_environment ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_shader_buts_tex_environment_ex()

void blender::ed::space_node::node_shader_buts_tex_environment_ex ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

Definition at line 396 of file drawnode.cc.

References C, DEFAULT_FLAGS, IFACE_, uiLayout::prop(), ptr, RNA_pointer_get(), and uiTemplateImage().

Referenced by node_shader_set_butfunc().

◆ node_shader_buts_tex_image()

void blender::ed::space_node::node_shader_buts_tex_image ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_shader_buts_tex_image_ex()

void blender::ed::space_node::node_shader_buts_tex_image_ex ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

Definition at line 376 of file drawnode.cc.

References C, ptr, RNA_pointer_get(), and uiTemplateImage().

Referenced by node_shader_set_butfunc().

◆ node_shader_script_update_exec()

◆ node_shader_script_update_poll()

◆ node_shader_set_butfunc()

◆ node_socket_add_replace()

◆ node_socket_add_tooltip()

void blender::ed::space_node::node_socket_add_tooltip ( const bNodeTree & ntree,
const bNodeSocket & sock,
uiLayout & layout )

◆ node_socket_add_tooltip_in_node_editor()

void blender::ed::space_node::node_socket_add_tooltip_in_node_editor ( const bNodeSocket & sock,
uiLayout & layout )
static

◆ node_socket_button_label()

void blender::ed::space_node::node_socket_button_label ( bContext * ,
uiLayout * layout,
PointerRNA * ,
PointerRNA * ,
const StringRef text )
static

Definition at line 82 of file drawnode.cc.

References uiLayout::label().

Referenced by ED_init_custom_node_socket_type(), and std_node_socket_draw().

◆ node_socket_calculate_height()

float blender::ed::space_node::node_socket_calculate_height ( const bNodeSocket & socket)

◆ node_socket_color_get()

void blender::ed::space_node::node_socket_color_get ( const bContext & C,
const bNodeTree & ntree,
PointerRNA & node_ptr,
const bNodeSocket & sock,
float r_color[4] )

Usual convention here would be node_socket_get_color(), but that's already used (for setting a color property socket).

Definition at line 1546 of file node_draw.cc.

References BLI_assert, C, copy_v4_v4(), bNodeTree::id, ptr, RNA_pointer_create_discrete(), RNA_struct_is_a(), PointerRNA::type, and bNodeSocket::typeinfo.

Referenced by node_draw_socket(), nodelink_get_draw_config(), reroute_node_draw_body(), and uiTemplateNodeLink().

◆ node_socket_count_links()

int blender::ed::space_node::node_socket_count_links ( const bNodeTree & ntree,
const bNodeSocket & socket )
static

◆ node_socket_deselect()

void blender::ed::space_node::node_socket_deselect ( bNode * node,
bNodeSocket & sock,
bool deselect_node )

◆ node_socket_disconnect()

void blender::ed::space_node::node_socket_disconnect ( Main * bmain,
bNodeTree * ntree,
bNode * node_to,
bNodeSocket * sock_to )
static

◆ node_socket_draw()

void blender::ed::space_node::node_socket_draw ( bNodeSocket * sock,
const rcti * rect,
const float color[4],
float scale )

◆ node_socket_drop_copy()

◆ node_socket_drop_poll()

bool blender::ed::space_node::node_socket_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent * event )
static

◆ node_socket_drop_tooltip()

std::string blender::ed::space_node::node_socket_drop_tooltip ( bContext * ,
wmDrag * drag,
const int [2],
wmDropBox *  )
static

◆ node_socket_get_label()

const char * blender::ed::space_node::node_socket_get_label ( const bNodeSocket * socket,
const char * panel_label = nullptr )

◆ node_socket_outline_color_get()

void blender::ed::space_node::node_socket_outline_color_get ( const bool selected,
const int socket_type,
float r_outline_color[4] )
static

◆ node_socket_remove()

void blender::ed::space_node::node_socket_remove ( Main * bmain,
bNodeTree * ntree,
bNode * node_to,
bNodeSocket * sock_to )
static

◆ node_socket_select()

void blender::ed::space_node::node_socket_select ( bNode * node,
bNodeSocket & sock )

Definition at line 184 of file node_select.cc.

References bNode::flag, bNodeSocket::flag, and SELECT.

Referenced by node_mouse_select(), and node_socket_toggle().

◆ node_socket_template_properties_update()

◆ node_socket_toggle()

void blender::ed::space_node::node_socket_toggle ( bNode * node,
bNodeSocket & sock,
bool deselect_node )
static

Definition at line 221 of file node_select.cc.

References bNodeSocket::flag, node_socket_deselect(), node_socket_select(), and SELECT.

Referenced by node_mouse_select().

◆ node_socket_toggle_exec()

◆ node_socket_tooltip_set()

void blender::ed::space_node::node_socket_tooltip_set ( uiBlock & block,
const int socket_index_in_tree,
const float2 location,
const float2 size )
static

◆ node_socket_undefined_draw()

void blender::ed::space_node::node_socket_undefined_draw ( bContext * ,
uiLayout * layout,
PointerRNA * ,
PointerRNA * ,
StringRef  )
static

Definition at line 867 of file drawnode.cc.

References IFACE_, and uiLayout::label().

Referenced by ED_node_init_butfuncs().

◆ node_socket_undefined_draw_color()

void blender::ed::space_node::node_socket_undefined_draw_color ( bContext * ,
PointerRNA * ,
PointerRNA * ,
float * r_color )
static

Definition at line 876 of file drawnode.cc.

Referenced by ED_node_init_butfuncs().

◆ node_socket_undefined_draw_color_simple()

void blender::ed::space_node::node_socket_undefined_draw_color_simple ( const bke::bNodeSocketType * ,
float * r_color )
static

Definition at line 887 of file drawnode.cc.

Referenced by ED_node_init_butfuncs().

◆ node_socket_undefined_interface_draw()

void blender::ed::space_node::node_socket_undefined_interface_draw ( ID * ,
bNodeTreeInterfaceSocket * ,
bContext * ,
uiLayout * layout )
static

Definition at line 896 of file drawnode.cc.

References IFACE_, and uiLayout::label().

Referenced by ED_node_init_butfuncs().

◆ node_socket_virtual_draw_color()

void blender::ed::space_node::node_socket_virtual_draw_color ( bContext * ,
PointerRNA * ,
PointerRNA * ,
float * r_color )
static

Definition at line 1477 of file drawnode.cc.

References copy_v4_v4(), and virtual_node_socket_color.

Referenced by ED_init_node_socket_type_virtual().

◆ node_socket_virtual_draw_color_simple()

void blender::ed::space_node::node_socket_virtual_draw_color_simple ( const bke::bNodeSocketType * ,
float * r_color )
static

Definition at line 1485 of file drawnode.cc.

References copy_v4_v4(), and virtual_node_socket_color.

Referenced by ED_init_node_socket_type_virtual().

◆ node_space_blend_read_data()

void blender::ed::space_node::node_space_blend_read_data ( BlendDataReader * reader,
SpaceLink * sl )
static

◆ node_space_blend_write()

void blender::ed::space_node::node_space_blend_write ( BlendWriter * writer,
SpaceLink * sl )
static

Definition at line 1746 of file space_node.cc.

References BLO_write_struct, LISTBASE_FOREACH, and SpaceNode::treepath.

Referenced by ED_spacetype_node().

◆ node_space_icon_get()

int blender::ed::space_node::node_space_icon_get ( const ScrArea * area)
static

◆ node_space_name_get()

blender::StringRefNull blender::ed::space_node::node_space_name_get ( const ScrArea * area)
static

◆ node_space_subtype_get()

int blender::ed::space_node::node_space_subtype_get ( ScrArea * area)
static

◆ node_space_subtype_item_extend()

void blender::ed::space_node::node_space_subtype_item_extend ( bContext * C,
EnumPropertyItem ** item,
int * totitem )
static

◆ node_space_subtype_set()

void blender::ed::space_node::node_space_subtype_set ( ScrArea * area,
int value )
static

◆ node_swap_group_asset_invoke()

◆ node_swap_group_poll()

◆ node_swap_links()

◆ node_tag_recursive()

void blender::ed::space_node::node_tag_recursive ( bNode * node)
static

◆ node_template_properties_update()

void blender::ed::space_node::node_template_properties_update ( blender::bke::bNodeType * ntype)
static

◆ node_templateID_assign()

void blender::ed::space_node::node_templateID_assign ( bContext * C,
bNodeTree * node_tree )
static

◆ node_texture_buts_bricks()

void blender::ed::space_node::node_texture_buts_bricks ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 652 of file drawnode.cc.

References col, uiLayout::column(), DEFAULT_FLAGS, IFACE_, ptr, and UI_ITEM_R_SLIDER.

Referenced by node_texture_set_butfunc().

◆ node_texture_buts_combsep_color()

void blender::ed::space_node::node_texture_buts_combsep_color ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 767 of file drawnode.cc.

References DEFAULT_FLAGS, uiLayout::prop(), and ptr.

Referenced by node_texture_set_butfunc().

◆ node_texture_buts_image()

void blender::ed::space_node::node_texture_buts_image ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

Definition at line 750 of file drawnode.cc.

References C, ptr, and uiTemplateID().

Referenced by node_texture_set_butfunc().

◆ node_texture_buts_image_ex()

void blender::ed::space_node::node_texture_buts_image_ex ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

Definition at line 755 of file drawnode.cc.

References C, ptr, RNA_pointer_create_discrete(), bNode::storage, and uiTemplateImage().

Referenced by node_texture_set_butfunc().

◆ node_texture_buts_output()

void blender::ed::space_node::node_texture_buts_output ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

Definition at line 762 of file drawnode.cc.

References DEFAULT_FLAGS, uiLayout::prop(), and ptr.

Referenced by node_texture_set_butfunc().

◆ node_texture_buts_proc()

◆ node_texture_set_butfunc()

◆ node_to_rect()

rctf blender::ed::space_node::node_to_rect ( const bNode & node)
static

◆ node_to_updated_rect()

void blender::ed::space_node::node_to_updated_rect ( const bNode & node,
rctf & r_rect )

◆ node_to_view()

◆ node_toggle_button_cb()

void blender::ed::space_node::node_toggle_button_cb ( bContext * C,
void * node_argv,
void * op_argv )
static

◆ node_toggle_viewer_exec()

◆ node_toolbar_region_draw()

void blender::ed::space_node::node_toolbar_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 900 of file space_node.cc.

References C, and ED_region_panels().

Referenced by ED_spacetype_node().

◆ node_toolbar_region_init()

void blender::ed::space_node::node_toolbar_region_init ( wmWindowManager * wm,
ARegion * region )
static

◆ node_tree_from_ID()

bNodeTree * blender::ed::space_node::node_tree_from_ID ( ID * id)
static

Definition at line 199 of file node_draw.cc.

References GS, ID_NT, ID::name, and blender::bke::node_tree_from_id().

Referenced by tag_update_id().

◆ node_tree_interface_draw()

◆ node_tree_interface_panel_draw()

void blender::ed::space_node::node_tree_interface_panel_draw ( const bContext * C,
Panel * panel )
static

◆ node_tree_interface_panel_poll()

bool blender::ed::space_node::node_tree_interface_panel_poll ( const bContext * C,
PanelType *  )
static

◆ node_tree_interface_panel_register()

◆ node_tree_view_scale()

float blender::ed::space_node::node_tree_view_scale ( const SpaceNode & snode)
static

The node tree scales both with the view and with the UI.

Definition at line 1636 of file node_draw.cc.

References blender::ed::space_node::SpaceNode_Runtime::aspect, SpaceNode::runtime, and UI_SCALE_FAC.

Referenced by draw_node_details().

◆ node_uiblocks_init()

Array< uiBlock * > blender::ed::space_node::node_uiblocks_init ( const bContext & C,
const Span< bNode * > nodes )
static

◆ node_unassigned_assets_draw()

◆ node_undefined_or_unsupported()

bool blender::ed::space_node::node_undefined_or_unsupported ( const bNodeTree & node_tree,
const bNode & node )
static

◆ node_under_mouse_get()

bNode * blender::ed::space_node::node_under_mouse_get ( const SpaceNode & snode,
const float2 mouse )

◆ node_update_basis()

void blender::ed::space_node::node_update_basis ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
bNodeTree & ntree,
bNode & node,
uiBlock & block )
static

◆ node_update_basis_buttons()

◆ node_update_basis_from_declaration()

◆ node_update_basis_from_socket_lists()

void blender::ed::space_node::node_update_basis_from_socket_lists ( TreeDrawContext & tree_draw_ctx,
const bContext & C,
bNodeTree & ntree,
bNode & node,
uiBlock & block,
const int locx,
int & locy )
static

◆ node_update_basis_socket()

◆ node_update_collapsed()

void blender::ed::space_node::node_update_collapsed ( bNode & node,
uiBlock & block )
static

Based on settings in node, sets drawing rect info.

Definition at line 1363 of file node_draw.cc.

References BASIS_RAD, float, bNode::location, NODE_DY, NODE_SOCKSIZE, node_to_view(), NODE_WIDTH, blender::math::round(), bNode::runtime, UI_block_bounds_set_explicit(), x, and y.

Referenced by node_update_nodetree().

◆ node_update_nodetree()

void blender::ed::space_node::node_update_nodetree ( const bContext & C,
TreeDrawContext & tree_draw_ctx,
bNodeTree & ntree,
Span< bNode * > nodes,
Span< uiBlock * > blocks )
static

◆ node_use_aov()

bool blender::ed::space_node::node_use_aov ( bNodeTree & ntree,
const bNode * node )
static

Definition at line 276 of file node_shader_preview.cc.

References node_find_preview_socket(), and socket_use_aov().

Referenced by node_preview_acquire_ibuf().

◆ node_view_all_exec()

wmOperatorStatus blender::ed::space_node::node_view_all_exec ( bContext * C,
wmOperator * op )
static

◆ node_view_selected_exec()

wmOperatorStatus blender::ed::space_node::node_view_selected_exec ( bContext * C,
wmOperator * op )
static

◆ node_widgets()

◆ nodelink_batch_add_link()

◆ nodelink_batch_draw()

◆ nodelink_batch_end()

void blender::ed::space_node::nodelink_batch_end ( const SpaceNode & snode)

Definition at line 2033 of file drawnode.cc.

References g_batch_link, and nodelink_batch_draw().

Referenced by node_draw_link_bezier_ex(), and node_draw_nodetree().

◆ nodelink_batch_init()

◆ nodelink_batch_reset()

void blender::ed::space_node::nodelink_batch_reset ( )
static

Definition at line 1866 of file drawnode.cc.

References g_batch_link.

Referenced by nodelink_batch_draw(), and nodelink_batch_init().

◆ nodelink_batch_start()

void blender::ed::space_node::nodelink_batch_start ( const SpaceNode & )

Definition at line 2028 of file drawnode.cc.

References g_batch_link.

Referenced by node_draw_link_bezier_ex(), and node_draw_nodetree().

◆ nodelink_get_color_id()

char blender::ed::space_node::nodelink_get_color_id ( int th_col)
static

Definition at line 1974 of file drawnode.cc.

References TH_ACTIVE, TH_EDGE_SELECT, TH_REDALERT, TH_WIRE, and TH_WIRE_INNER.

Referenced by nodelink_batch_add_link(), and nodelink_batch_draw().

◆ nodelink_get_draw_config()

NodeLinkDrawConfig blender::ed::space_node::nodelink_get_draw_config ( const bContext & C,
const View2D & v2d,
const SpaceNode & snode,
const bNodeLink & link,
const int th_col1,
const int th_col2,
const int th_col3,
const bool selected )
static

Definition at line 2152 of file drawnode.cc.

References blender::ColorRGBA< ChannelStorageType, Space, Alpha >::a, C, copy_v4_v4(), blender::ed::space_node::NodeLinkDrawConfig::dash_alpha, ThemeSpace::dash_alpha, blender::ed::space_node::NodeLinkDrawConfig::dash_factor, blender::ed::space_node::NodeLinkDrawConfig::dash_length, blender::ed::space_node::NodeLinkDrawConfig::dim_factor, blender::ed::space_node::NodeLinkDrawConfig::draw_arrow, blender::ed::space_node::NodeLinkDrawConfig::draw_muted, SpaceNode::edittree, blender::ed::space_node::NodeLinkDrawConfig::end_color, bNodeLink::flag, SpaceNodeOverlay::flag, bNodeLink::fromnode, bNodeLink::fromsock, blender::ed::space_node::NodeLinkDrawConfig::has_back_link, blender::ed::space_node::NodeLinkDrawConfig::highlighted, bNodeTree::id, interp_v3_v3v3(), LINK_WIDTH, max_ff(), node_link_dim_factor(), node_link_is_field_link(), node_link_is_gizmo_link(), NODE_LINK_MUTED, NODE_LINK_TEMP_HIGHLIGHT, node_socket_color_get(), blender::ed::space_node::NodeLinkDrawConfig::outline_color, SpaceNode::overlay, RNA_pointer_create_discrete(), SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_WIRE_COLORS, bTheme::space_node, blender::ed::space_node::NodeLinkDrawConfig::start_color, blender::ed::space_node::NodeLinkDrawConfig::th_col1, blender::ed::space_node::NodeLinkDrawConfig::th_col2, blender::ed::space_node::NodeLinkDrawConfig::th_col3, TH_EDGE_SELECT, TH_SELECT, blender::ed::space_node::NodeLinkDrawConfig::thickness, bNodeLink::tonode, bNodeLink::tosock, UI_GetTheme(), UI_GetThemeColor4fv(), UI_SCALE_FAC, and UI_view2d_scale_get_x().

Referenced by node_draw_link_bezier(), and node_draw_link_dragged().

◆ nodes_are_same_type_for_select()

bool blender::ed::space_node::nodes_are_same_type_for_select ( const bNode & a,
const bNode & b )
static

Definition at line 1327 of file node_select.cc.

References b, and bNode::type_legacy.

Referenced by node_select_same_type_step_exec().

◆ nodesocket_batch_end()

void blender::ed::space_node::nodesocket_batch_end ( )

◆ nodesocket_batch_init()

◆ nodesocket_batch_start()

void blender::ed::space_node::nodesocket_batch_start ( )

◆ nodesocket_cache_flush()

◆ nodetree_previews_break()

bool blender::ed::space_node::nodetree_previews_break ( void * spv)
static

◆ panel_has_only_inactive_inputs()

bool blender::ed::space_node::panel_has_only_inactive_inputs ( const bNode & node,
const nodes::PanelDeclaration & panel_decl )
static

Note that this is different from #panel_has_input_affecting_node_output in how it treats output sockets. Within the node UI, the panel should not be grayed out if it has an output socket. However, the sidebar only shows inputs, so output sockets should be ignored.

Definition at line 2002 of file node_draw.cc.

References blender::nodes::PanelDeclaration::items, panel_has_only_inactive_inputs(), and SOCK_OUT.

Referenced by node_draw_panels(), and panel_has_only_inactive_inputs().

◆ pick_input_link_by_link_intersect()

◆ pick_link()

◆ position_node_based_on_mouse()

void blender::ed::space_node::position_node_based_on_mouse ( bNode & node,
const float2 & location )
static

Definition at line 71 of file node_add.cc.

References bNode::location, NODE_DY, and UI_SCALE_FAC.

Referenced by add_node(), and add_static_node().

◆ prefer_node_for_interface_name()

bool blender::ed::space_node::prefer_node_for_interface_name ( const bNode & node)
static

The output sockets of group nodes usually have consciously given names so they have precedence over socket names the link points to.

Definition at line 920 of file node_group.cc.

Referenced by add_interface_from_socket().

◆ prepare_viewlayer_update()

◆ preview_prepare_scene()

◆ preview_render()

void blender::ed::space_node::preview_render ( ShaderNodesPreviewJob & job_data)
static

◆ remap_node_pairing()

◆ remap_pairing()

◆ remove_unavailable_links()

void blender::ed::space_node::remove_unavailable_links ( bNodeTree & tree,
bNodeSocket & socket )
static

Definition at line 1560 of file node_relationships.cc.

References blender::bke::node_remove_link(), and tree.

Referenced by node_link_init().

◆ reroute_node_draw()

◆ reroute_node_draw_body()

◆ reroute_node_draw_label()

◆ reroute_node_get_auto_label()

◆ reroute_node_get_linked_reroute()

const bNode * blender::ed::space_node::reroute_node_get_linked_reroute ( const bNode & reroute)
static

Returns the reroute node linked to the input of the given reroute, if there is one.

Definition at line 3999 of file node_draw.cc.

References BLI_assert, and bNodeLink::fromnode.

Referenced by reroute_node_get_auto_label().

◆ reroute_node_prepare_for_draw()

void blender::ed::space_node::reroute_node_prepare_for_draw ( bNode & node)
static

Definition at line 3717 of file node_draw.cc.

References bNode::location, NODE_SOCKSIZE, node_to_view(), bNode::runtime, and bNode::width.

Referenced by node_update_nodetree().

◆ root_catalogs_draw()

◆ row_from_used_named_attribute()

◆ sample_apply()

◆ sample_cancel()

void blender::ed::space_node::sample_cancel ( bContext * C,
wmOperator * op )
static

Definition at line 702 of file node_view.cc.

References C, and sample_exit().

Referenced by NODE_OT_backimage_sample().

◆ sample_draw()

◆ sample_exit()

◆ sample_invoke()

◆ sample_modal()

wmOperatorStatus blender::ed::space_node::sample_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ search_link_ops_for_asset_metadata()

◆ set_nodelink_vertex()

void blender::ed::space_node::set_nodelink_vertex ( gpu::VertBuf * vbo,
uint uv_id,
uint pos_id,
uint exp_id,
uint v,
const float uv[2],
const float pos[2],
const float exp[2] )
static

Definition at line 1871 of file drawnode.cc.

References exp, GPU_vertbuf_attr_set(), pos, and v.

Referenced by nodelink_batch_init().

◆ shader_preview_free()

◆ shader_preview_startjob()

void blender::ed::space_node::shader_preview_startjob ( void * customdata,
wmJobWorkerStatus * worker_status )
static

◆ should_create_drag_link_search_menu()

◆ snode_autoconnect()

◆ snode_autoconnect_input()

bool blender::ed::space_node::snode_autoconnect_input ( bContext & C,
SpaceNode & snode,
bNode * node_fr,
bNodeSocket * sock_fr,
bNode * node_to,
bNodeSocket * sock_to,
int replace )
static

◆ snode_bg_viewmove_cancel()

void blender::ed::space_node::snode_bg_viewmove_cancel ( bContext * ,
wmOperator * op )
static

Definition at line 307 of file node_view.cc.

References wmOperator::customdata, and MEM_freeN().

Referenced by NODE_OT_backimage_move().

◆ snode_bg_viewmove_invoke()

◆ snode_bg_viewmove_modal()

◆ snode_set_context()

◆ snode_setup_v2d()

void blender::ed::space_node::snode_setup_v2d ( SpaceNode & snode,
ARegion & region,
const float2 & center )
static

◆ socket_is_available()

bool blender::ed::space_node::socket_is_available ( const bNodeTree * ntree,
bNodeSocket * sock,
const bool allow_used )
static

◆ socket_is_occluded()

bool blender::ed::space_node::socket_is_occluded ( const float2 & location,
const bNode & node_the_socket_belongs_to,
const Span< bNode * > sorted_nodes )
static

Definition at line 873 of file node_edit.cc.

References BLI_rctf_init_pt_radius(), BLI_rctf_inside_rctf(), NODE_SOCKSIZE, and U.

Referenced by node_find_indicated_socket().

◆ socket_link_connection_location()

float2 blender::ed::space_node::socket_link_connection_location ( const bNode & node,
const bNodeSocket & socket,
const bNodeLink & link )

◆ socket_needs_attribute_search()

bool blender::ed::space_node::socket_needs_attribute_search ( bNode & node,
bNodeSocket & socket )
static

◆ socket_needs_layer_search()

bool blender::ed::space_node::socket_needs_layer_search ( const bNode & node,
const bNodeSocket & socket )
static

◆ socket_needs_volume_grid_search()

bool blender::ed::space_node::socket_needs_volume_grid_search ( const bNode & node,
const bNodeSocket & socket )
static

◆ socket_use_aov()

bool blender::ed::space_node::socket_use_aov ( const bNodeSocket * socket)
static

Definition at line 271 of file node_shader_preview.cc.

References SOCK_SHADER, and bNodeSocket::type.

Referenced by node_use_aov(), and shader_preview_startjob().

◆ sockets_sync_exec()

◆ sockets_sync_get_description()

◆ sort_multi_input_socket_links_with_drag()

◆ space_node_active_view_poll()

bool blender::ed::space_node::space_node_active_view_poll ( bContext * C)
static

◆ space_node_composite_active_view_poll()

bool blender::ed::space_node::space_node_composite_active_view_poll ( bContext * C)
static

◆ space_node_group_offset()

float2 blender::ed::space_node::space_node_group_offset ( const SpaceNode & snode)

Transform between View2Ds in the tree path.

Definition at line 266 of file space_node.cc.

References ListBase::last, bNodeTreePath::prev, SpaceNode::treepath, and bNodeTreePath::view_center.

Referenced by node_group_separate_exec().

◆ space_node_view_flag()

◆ std_node_socket_color_fn()

template<int socket_type>
void blender::ed::space_node::std_node_socket_color_fn ( bContext * ,
PointerRNA * ,
PointerRNA * ,
float * r_color )

Definition at line 984 of file drawnode.cc.

References copy_v4_v4(), and std_node_socket_colors.

◆ std_node_socket_color_simple_fn()

void blender::ed::space_node::std_node_socket_color_simple_fn ( const bke::bNodeSocketType * type,
float * r_color )
static

◆ std_node_socket_colors_get()

void blender::ed::space_node::std_node_socket_colors_get ( int socket_type,
float * r_color )

Definition at line 974 of file drawnode.cc.

References BLI_assert, copy_v4_v4(), and std_node_socket_colors.

Referenced by icon_node_socket_draw().

◆ std_node_socket_draw()

void blender::ed::space_node::std_node_socket_draw ( bContext * C,
uiLayout * layout,
PointerRNA * ptr,
PointerRNA * node_ptr,
StringRef label )
static

Definition at line 1087 of file drawnode.cc.

References uiLayout::active_set(), uiLayout::alignment_set(), C, uiLayout::column(), blender::nodes::SocketDeclaration::compact, PointerRNA::data, DEFAULT_FLAGS, bNodeSocket::display_shape, draw_gizmo_pin_icon(), draw_node_socket_name_editable(), draw_node_socket_without_value(), ELEM, bNodeSocketValueMenu::enum_items, bNodeSocket::flag, IFACE_, bNodeSocket::in_out, blender::nodes::gizmos::is_builtin_gizmo_node(), blender::StringRefBase::is_empty(), uiLayout::label(), node_geometry_add_attribute_search_button(), node_geometry_add_layer_search_button(), node_geometry_add_volume_grid_search_button(), node_socket_button_label(), NTREE_GEOMETRY, blender::nodes::SocketDeclaration::optional_label, PointerRNA::owner_id, uiLayout::prop(), PROP_DIRECTION, ptr, blender::ui::Right, RNA_struct_find_property(), uiLayout::row(), bNodeSocket::runtime, SOCK_BOOLEAN, SOCK_COLLECTION, SOCK_DISPLAY_SHAPE_LIST, SOCK_DISPLAY_SHAPE_VOLUME_GRID, SOCK_FLOAT, SOCK_HIDE_VALUE, SOCK_IMAGE, SOCK_IN, SOCK_INT, SOCK_MATERIAL, SOCK_MATRIX, SOCK_MENU, SOCK_OBJECT, SOCK_OUT, SOCK_RGBA, SOCK_ROTATION, SOCK_STRING, SOCK_TEXTURE, SOCK_VECTOR, socket_needs_attribute_search(), socket_needs_layer_search(), socket_needs_volume_grid_search(), uiLayout::split(), tree, bNodeTree::type, bNodeSocket::typeinfo, UI_ITEM_NONE, UI_ITEM_R_EXPAND, uiTemplateComponentMenu(), and uiTemplateID().

Referenced by ED_init_node_socket_type_virtual(), and ED_init_standard_node_socket_type().

◆ std_node_socket_interface_draw()

◆ swap_root_catalogs_draw()

void blender::ed::space_node::swap_root_catalogs_draw ( const bContext * C,
Menu * menu )
static

◆ swap_root_catalogs_menu_type()

◆ tag_final_panel()

void blender::ed::space_node::tag_final_panel ( bNode & node,
const Span< FlatNodeItem > items )
static

Tag the innermost panel that goes to the very end of the node. The background color of that panel is extended to fill the entire rest of the node.

Definition at line 1107 of file node_draw.cc.

References blender::bke::bNodePanelRuntime::content_extent, blender::ed::space_node::flat_item::PanelContentEnd::decl, blender::nodes::PanelDeclaration::index, blender::ed::space_node::FlatNodeItem::item, bNode::runtime, and blender::Span< T >::size().

Referenced by node_update_basis_from_declaration().

◆ tag_update_id()

◆ test_inline_shader_nodes_exec()

◆ tree_draw_order_calc_nodes()

Array< bNode * > blender::ed::space_node::tree_draw_order_calc_nodes ( bNodeTree & ntree)

Return the nodes in draw order, with the top nodes at the end.

Definition at line 328 of file node_draw.cc.

References b.

Referenced by draw_nodetree().

◆ tree_draw_order_calc_nodes_reversed()

Array< bNode * > blender::ed::space_node::tree_draw_order_calc_nodes_reversed ( bNodeTree & ntree)

Return the nodes in reverse draw order, with the top nodes at the start.

Definition at line 340 of file node_draw.cc.

References b.

Referenced by find_node_under_cursor(), node_attach_invoke(), node_find_frame_to_attach(), node_find_indicated_socket(), node_link_insert_offset_ntree(), and node_under_mouse_get().

◆ tree_draw_order_update()

◆ tree_path_handle_func()

◆ tree_update()

void blender::ed::space_node::tree_update ( const bContext * C)

◆ ui_compatible_sockets()

int blender::ed::space_node::ui_compatible_sockets ( int typeA,
int typeB )
static

Definition at line 456 of file node_templates.cc.

Referenced by ui_node_menu_column().

◆ ui_node_draw_input()

◆ ui_node_draw_node()

◆ ui_node_draw_recursive()

◆ ui_node_item_name_compare()

int blender::ed::space_node::ui_node_item_name_compare ( const void * a,
const void * b )
static

Definition at line 461 of file node_templates.cc.

References b, BLI_strcasecmp_natural(), and blender::bke::bNodeType::ui_name.

Referenced by ui_node_menu_column().

◆ ui_node_item_special_poll()

bool blender::ed::space_node::ui_node_item_special_poll ( const bNodeTree * ,
const bke::bNodeType * ntype )
static

Definition at line 468 of file node_templates.cc.

References blender::bke::bNodeType::idname.

Referenced by ui_node_menu_column().

◆ ui_node_link()

◆ ui_node_link_items()

◆ ui_node_menu_column()

◆ ui_node_sock_name()

◆ UI_node_socket_draw_cache_flush()

void blender::ed::space_node::UI_node_socket_draw_cache_flush ( )

References C, ot, and tree.

◆ ui_template_node_asset_menu_items()

◆ ui_template_node_link_menu()

◆ unassigned_assets_menu_type()

◆ update_collapsed_sockets()

void blender::ed::space_node::update_collapsed_sockets ( bNode & node,
const int node_left_x )
static

Finds all collapsed sockets and updates them based on the visible parent panel that contains them.

Definition at line 1094 of file node_draw.cc.

References update_collapsed_sockets_recursive().

Referenced by node_update_basis_from_declaration().

◆ update_collapsed_sockets_recursive()

void blender::ed::space_node::update_collapsed_sockets_recursive ( bNode & node,
const int node_left_x,
const nodes::PanelDeclaration & panel_decl )
static

◆ update_multi_input_indices_for_removed_links()

◆ update_needed_flag()

◆ update_nested_node_refs_after_moving_nodes_into_group()

◆ update_nested_node_refs_after_ungroup()

void blender::ed::space_node::update_nested_node_refs_after_ungroup ( bNodeTree & ntree,
const bNodeTree & ngroup,
const bNode & gnode,
const Map< int32_t, int32_t > & node_identifier_map )
static

◆ viewer_border_corner_to_backdrop()

void blender::ed::space_node::viewer_border_corner_to_backdrop ( SpaceNode * snode,
ARegion * region,
int x,
int y,
int backdrop_width,
int backdrop_height,
float * fx,
float * fy )
static

Definition at line 2313 of file node_edit.cc.

References float, ARegion::winx, ARegion::winy, x, SpaceNode::xof, y, SpaceNode::yof, and SpaceNode::zoom.

Referenced by viewer_border_exec().

◆ viewer_border_exec()

◆ volume_grid_search_add_items()

void blender::ed::space_node::volume_grid_search_add_items ( const StringRef str,
const bool can_create_grid,
const Span< const VolumeGridInfo * > grids,
uiSearchItems & seach_items,
const bool is_first )
static

◆ WIDGETGROUP_bbox_draw_prepare()

void blender::ed::space_node::WIDGETGROUP_bbox_draw_prepare ( const bContext * C,
wmGizmoGroup * gzgroup )
static

◆ WIDGETGROUP_node_box_mask_poll()

bool blender::ed::space_node::WIDGETGROUP_node_box_mask_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_box_mask_setup()

◆ WIDGETGROUP_node_corner_pin_draw_prepare()

◆ WIDGETGROUP_node_corner_pin_poll()

bool blender::ed::space_node::WIDGETGROUP_node_corner_pin_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_corner_pin_refresh()

◆ WIDGETGROUP_node_corner_pin_setup()

◆ WIDGETGROUP_node_crop_draw_prepare()

void blender::ed::space_node::WIDGETGROUP_node_crop_draw_prepare ( const bContext * C,
wmGizmoGroup * gzgroup )
static

◆ WIDGETGROUP_node_crop_poll()

bool blender::ed::space_node::WIDGETGROUP_node_crop_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_crop_refresh()

◆ WIDGETGROUP_node_crop_setup()

◆ WIDGETGROUP_node_ellipse_mask_poll()

bool blender::ed::space_node::WIDGETGROUP_node_ellipse_mask_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_ellipse_mask_setup()

◆ WIDGETGROUP_node_glare_draw_prepare()

◆ WIDGETGROUP_node_glare_poll()

◆ WIDGETGROUP_node_glare_refresh()

◆ WIDGETGROUP_node_glare_setup()

void blender::ed::space_node::WIDGETGROUP_node_glare_setup ( const bContext * ,
wmGizmoGroup * gzgroup )
static

◆ WIDGETGROUP_node_mask_refresh()

◆ WIDGETGROUP_node_split_poll()

bool blender::ed::space_node::WIDGETGROUP_node_split_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_split_refresh()

◆ WIDGETGROUP_node_split_setup()

◆ WIDGETGROUP_node_transform_poll()

bool blender::ed::space_node::WIDGETGROUP_node_transform_poll ( const bContext * C,
wmGizmoGroupType *  )
static

◆ WIDGETGROUP_node_transform_refresh()

◆ WIDGETGROUP_node_transform_setup()

void blender::ed::space_node::WIDGETGROUP_node_transform_setup ( const bContext * ,
wmGizmoGroup * gzgroup )
static

Variable Documentation

◆ arrow_expand_axis

float blender::ed::space_node::arrow_expand_axis[3][2] = {{0.7071f, 0.7071f}, {M_SQRT2, 0.0f}, {0.7071f, -0.7071f}}
static

Definition at line 1853 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ arrow_verts

float blender::ed::space_node::arrow_verts[3][2] = {{-1.0f, 1.0f}, {0.0f, 0.0f}, {-1.0f, -1.0f}}
static

Definition at line 1852 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ batch

gpu::Batch* blender::ed::space_node::batch

◆ count

uint blender::ed::space_node::count

Definition at line 1861 of file drawnode.cc.

Referenced by node_socket_count_links().

◆ data

◆ enabled

bool blender::ed::space_node::enabled

◆ [struct]

◆ GIZMO_NODE_DEFAULT_DIMS

const float2 blender::ed::space_node::GIZMO_NODE_DEFAULT_DIMS {64.0f, 64.0f}
static

◆ link_buf

gpu::StorageBuf* blender::ed::space_node::link_buf

Definition at line 1860 of file drawnode.cc.

◆ mute_expand_axis

float blender::ed::space_node::mute_expand_axis[3][2] = {{1.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, -0.0f}}
static

Definition at line 1855 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ mute_verts

float blender::ed::space_node::mute_verts[3][2] = {{0.7071f, 1.0f}, {0.7071f, 0.0f}, {0.7071f, -1.0f}}
static

Definition at line 1854 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ node_group_separate_types

const EnumPropertyItem blender::ed::space_node::node_group_separate_types[]
static
Initial value:
= {
{NODE_GS_COPY, "COPY", 0, "Copy", "Copy to parent node tree, keep group intact"},
{NODE_GS_MOVE, "MOVE", 0, "Move", "Move to parent node tree, remove from group"},
{0, nullptr, 0, nullptr, nullptr},
}

Definition at line 681 of file node_group.cc.

Referenced by NODE_OT_group_separate().

◆ std_node_socket_color_funcs

◆ std_node_socket_colors

const float blender::ed::space_node::std_node_socket_colors[][4]
static
Initial value:
= {
{0.63, 0.63, 0.63, 1.0},
{0.39, 0.39, 0.78, 1.0},
{0.78, 0.78, 0.16, 1.0},
{0.39, 0.78, 0.39, 1.0},
{0.80, 0.65, 0.84, 1.0},
{0.0, 0.0, 0.0, 0.0},
{0.35, 0.55, 0.36, 1.0},
{0.44, 0.70, 1.00, 1.0},
{0.93, 0.62, 0.36, 1.0},
{0.39, 0.22, 0.39, 1.0},
{0.00, 0.84, 0.64, 1.0},
{0.96, 0.96, 0.96, 1.0},
{0.62, 0.31, 0.64, 1.0},
{0.92, 0.46, 0.51, 1.0},
{0.65, 0.39, 0.78, 1.0},
{0.40, 0.40, 0.40, 1.0},
{0.72, 0.20, 0.52, 1.0},
{0.30, 0.50, 0.50, 1.0},
{0.49, 0.49, 0.23, 1.0},
}

Definition at line 952 of file drawnode.cc.

Referenced by ED_node_type_draw_color(), std_node_socket_color_fn(), std_node_socket_color_simple_fn(), and std_node_socket_colors_get().

◆ virtual_node_socket_color

const float blender::ed::space_node::virtual_node_socket_color[4] = {0.2, 0.2, 0.2, 1.0}
static

◆ virtual_node_socket_outline_color

const float blender::ed::space_node::virtual_node_socket_outline_color[4] = {0.5, 0.5, 0.5, 1.0}
static

Definition at line 1523 of file node_draw.cc.

Referenced by node_socket_outline_color_get().