Blender V4.5
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  NodeBBoxWidgetGroup
struct  NodeSunBeamsWidgetGroup
struct  NodeCornerPinWidgetGroup
struct  WrapperNodeGroupMapping
struct  bNodeLinkDrag
struct  SpaceNode_Runtime
struct  LinkAndPosition
struct  NodeJoinState
struct  NodeDetachstate
struct  ShaderNodesPreviewJob
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_closure_evaluation (const ComputeContext *closure_socket_context, const bNodeSocket &closure_socket, bke::ComputeContextCache &compute_context_cache, const std::optional< nodes::ClosureSourceLocation > &source_location)
const ComputeContextcompute_context_for_zone (const bke::bNodeTreeZone &zone, 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)
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_add_catalog_assets_draw (const bContext *C, Menu *menu)
static void node_add_unassigned_assets_draw (const bContext *C, Menu *menu)
static void add_root_catalogs_draw (const bContext *C, Menu *menu)
MenuType add_catalog_assets_menu_type ()
MenuType add_unassigned_assets_menu_type ()
MenuType add_root_catalogs_menu_type ()
static NodeClipboardget_node_clipboard ()
static void node_socket_button_label (bContext *, uiLayout *layout, PointerRNA *, PointerRNA *, const StringRefNull 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_ycc (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 void node_file_output_socket_draw (bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *node_ptr)
static bool socket_needs_attribute_search (bNode &node, bNodeSocket &socket)
static bool socket_needs_layer_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 bool show_menu_socket_name (const bNode *node, const bNodeSocket *sock)
static void std_node_socket_draw (bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *node_ptr, StringRefNull text)
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)
float2float2 socket_link_connection_location (const bNode &node, const bNodeSocket &socket, const bNodeLink &link)
static void calculate_inner_link_bezier_points (std::array< float2float2, 4 > &points)
static std::array< float2float2, 4 > node_link_bezier_points (const bNodeLink &link)
static bool node_link_draw_is_visible (const View2D &v2d, const std::array< float2float2, 4 > &points)
void node_link_bezier_points_evaluated (const bNodeLink &link, std::array< float2float2, 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 float2float2 &cursor)
static void context_path_add_object_data (Vector< ui::ContextPathItem > &path, Object &object)
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 std::string node_socket_get_tooltip (const SpaceNode *snode, const bNodeTree &ntree, const bNodeSocket &socket)
static const char * node_socket_get_translation_context (const bNodeSocket &socket)
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)
float2float2 node_to_view (const float2float2 &co)
static rctf node_to_rect (const bNode &node)
void node_to_updated_rect (const bNode &node, rctf &r_rect)
float2float2 node_from_view (const float2float2 &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)
const char * node_socket_get_label (const bNodeSocket *socket, const char *panel_label)
static bool node_update_basis_socket (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 (const bContext &C, bNodeTree &ntree, bNode &node, uiBlock &block, const int locx, int &locy)
static void node_update_basis_from_socket_lists (const bContext &C, bNodeTree &ntree, bNode &node, uiBlock &block, const int locx, int &locy)
static void node_update_basis (const bContext &C, const TreeDrawContext &, bNodeTree &ntree, bNode &node, uiBlock &block)
static void node_update_hidden (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 float2float2 location, const float2float2 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])
static void create_inspection_string_for_generic_value (const bNodeSocket &socket, const GPointer value, fmt::memory_buffer &buf)
static void create_inspection_string_for_field_info (const bNodeSocket &socket, const geo_log::FieldInfoLog &value_log, fmt::memory_buffer &buf)
static void create_inspection_string_for_geometry_info (const geo_log::GeometryInfoLog &value_log, fmt::memory_buffer &buf)
static void create_inspection_string_for_geometry_socket (fmt::memory_buffer &buf, const nodes::decl::Geometry *socket_decl)
static void create_inspection_string_for_bundle (const geo_log::BundleValueLog &value_log, fmt::memory_buffer &buf)
static void create_inspection_string_for_closure (const geo_log::ClosureValueLog &value_log, fmt::memory_buffer &buf)
static void create_inspection_string_for_default_socket_value (const bNodeSocket &socket, fmt::memory_buffer &buf)
static std::optional< std::string > create_description_inspection_string (const bNodeSocket &socket)
static std::optional< std::string > create_log_inspection_string (geo_log::GeoTreeLog *geo_tree_log, const bNodeSocket &socket)
static std::optional< std::string > create_declaration_inspection_string (const bNodeSocket &socket)
static Vector< std::string > lines_of_text (std::string text)
static std::optional< std::string > create_multi_input_log_inspection_string (const bNodeSocket &socket, TreeDrawContext &tree_draw_ctx)
static std::optional< std::string > create_default_value_inspection_string (const bNodeSocket &socket)
static const bNodeSockettarget_for_reroute (const bNodeSocket &reroute_output)
static std::optional< std::string > create_dangling_reroute_inspection_string (const bNodeTree &ntree, const bNodeSocket &socket)
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_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 void node_add_unsupported_compositor_operation_error_message_button (const bNode &node, uiBlock &block, const rctf &rect, float &icon_offset)
static void node_add_error_message_button (const TreeDrawContext &tree_draw_ctx, 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 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_hidden (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 float2float2 &cursor)
void node_set_cursor (wmWindow &win, ARegion &region, SpaceNode &snode, const float2float2 &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)
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< float2float2 > &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< float2float2 > > 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< float2float2find_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 float2float2 &center)
static bool compositor_is_in_use (const bContext &context)
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)
 ENUM_OPERATORS (NodeResizeDirection, NODE_RESIZE_LEFT)
float2float2 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 ()
static void clear_picking_highlight (ListBase *links)
static bool has_workbench_in_texture_color (const wmWindowManager *wm, const Scene *scene, const Object *ob)
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 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 const ComputeContextcompute_context_for_zones (const Span< const bke::bNodeTreeZone * > zones, bke::ComputeContextCache &compute_context_cache, const ComputeContext *parent_compute_context)
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 *area)
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)
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)
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 float2float2 &mouse)
static bNodenode_under_mouse_select (const SpaceNode &snode, const float2float2 mouse)
static bool is_position_over_node_or_socket (SpaceNode &snode, ARegion &region, const float2float2 &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 int2int2 &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 *, StringRefNull)
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 float2float2 &location)
bNodeadd_node (const bContext &C, const StringRef idname, const float2float2 &location)
bNodeadd_static_node (const bContext &C, int type, const float2float2 &location)
Add Reroute Operator
std::optional< float2float2link_path_intersection (const bNodeLink &link, const Span< float2float2 > 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 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 std::string node_add_group_asset_get_description (bContext *C, wmOperatorType *, PointerRNA *ptr)
void NODE_OT_add_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 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)
Composite Poll & Utility Functions
bool composite_node_active (bContext *C)
bool composite_node_editable (bContext *C)
Node Generic
static bool socket_is_occluded (const float2float2 &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 float2float2 &cursor, const bNodeSocket &socket)
bNodeSocketnode_find_indicated_socket (SpaceNode &snode, ARegion &region, const float2float2 &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 Hide Operator
static void node_flag_toggle_exec (SpaceNode *snode, int toggle_flag, const bool tag_update=false)
static wmOperatorStatus node_hide_toggle_exec (bContext *C, wmOperator *)
void NODE_OT_hide_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 node_deactivate_viewer_exec (bContext *C, wmOperator *)
void NODE_OT_deactivate_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 File Output Add Socket Operator
static wmOperatorStatus node_output_file_add_socket_exec (bContext *C, wmOperator *op)
void NODE_OT_output_file_add_socket (wmOperatorType *ot)
Node Multi File Output Remove Socket Operator
static wmOperatorStatus node_output_file_remove_active_socket_exec (bContext *C, wmOperator *)
void NODE_OT_output_file_remove_active_socket (wmOperatorType *ot)
Node Multi File Output Move Socket Node
static wmOperatorStatus node_output_file_move_active_socket_exec (bContext *C, wmOperator *op)
void NODE_OT_output_file_move_active_socket (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)
Local Utilities
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 float2float2 &image_dims, const float2float2 &image_offset, float matrix_space[4][4])
static bool node_gizmo_is_set_visible (const bContext *C)
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)
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 float2float2 &dims, const float2float2 offset, rctf *r_rect)
static void node_input_from_rect (bNode *node, const rctf *rect, const float2float2 &dims, const float2float2 &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)
Sun Beams
static bool WIDGETGROUP_node_sbeam_poll (const bContext *C, wmGizmoGroupType *)
static void WIDGETGROUP_node_sbeam_setup (const bContext *, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_sbeam_draw_prepare (const bContext *C, wmGizmoGroup *gzgroup)
static void WIDGETGROUP_node_sbeam_refresh (const bContext *C, wmGizmoGroup *gzgroup)
void NODE_GGT_backdrop_sun_beams (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)
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, float2float2 &min, float2float2 &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 bool node_mouse_select (bContext *C, wmOperator *op, const int2int2 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< int2int2 > 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_label (const bNodeTree &ntree, const bNode &node)
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 float2float2 &cursor)
static bool socket_is_available (bNodeTree *, bNodeSocket *sock, const bool allow_used)
static bNodeSocketbest_socket_output (bNodeTree *ntree, bNode *node, bNodeSocket *sock_target, const bool allow_multiple)
static bNodeSocketbest_socket_input (bNodeTree *ntree, bNode *node, int num, int replace)
static bool snode_autoconnect_input (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 float2float2 &cursor)
static void snode_autoconnect (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 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_exec (bContext *C, wmOperator *)
static wmOperatorStatus node_join_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 int2int2 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 *)
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}

Composite Job Manager

enum  { COM_RECALC_COMPOSITE = 1 , COM_RECALC_VIEWER = 2 }
float node_socket_calculate_height (const bNodeSocket &socket)
float2float2 node_link_calculate_multi_input_position (const float2float2 &socket_position, const int index, const int total_inputs)
static void compo_tag_output_nodes (bNodeTree *nodetree, int recalc_flags)
static int compo_get_recalc_flags (const bContext *C)
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)

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 float2float2 &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 float2float2 &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 float2float2 &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 float2float2 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::Batch *   blender::ed::space_node::batch_single 
   gpu::VertBuf *   blender::ed::space_node::inst_vbo 
   uint   blender::ed::space_node::p0_id 
   uint   blender::ed::space_node::p1_id 
   uint   blender::ed::space_node::p2_id 
   uint   blender::ed::space_node::p3_id 
   uint   blender::ed::space_node::colid_id 
   uint   blender::ed::space_node::muted_id 
   uint   blender::ed::space_node::start_color_id 
   uint   blender::ed::space_node::end_color_id 
   uint   blender::ed::space_node::dim_factor_id 
   uint   blender::ed::space_node::thickness_id 
   uint   blender::ed::space_node::dash_params_id 
   uint   blender::ed::space_node::has_back_link_id 
   GPUVertBufRaw   blender::ed::space_node::p0_step 
   GPUVertBufRaw   blender::ed::space_node::p1_step 
   GPUVertBufRaw   blender::ed::space_node::p2_step 
   GPUVertBufRaw   blender::ed::space_node::p3_step 
   GPUVertBufRaw   blender::ed::space_node::colid_step 
   GPUVertBufRaw   blender::ed::space_node::muted_step 
   GPUVertBufRaw   blender::ed::space_node::start_color_step 
   GPUVertBufRaw   blender::ed::space_node::end_color_step 
   GPUVertBufRaw   blender::ed::space_node::dim_factor_step 
   GPUVertBufRaw   blender::ed::space_node::thickness_step 
   GPUVertBufRaw   blender::ed::space_node::dash_params_step 
   GPUVertBufRaw   blender::ed::space_node::has_back_link_step 
   uint   blender::ed::space_node::count 
   bool   blender::ed::space_node::enabled 
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 (SpaceNode &)
void nodelink_batch_end (SpaceNode &snode)
static void nodelink_batch_add_link (const SpaceNode &snode, const std::array< float2float2, 4 > &points, const NodeLinkDrawConfig &draw_config)
static void node_draw_link_end_marker (const float2float2 center, const float radius, const ColorTheme4f &color)
static void node_draw_link_end_markers (const bNodeLink &link, const NodeLinkDrawConfig &draw_config, const std::array< float2float2, 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< float2float2, 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< float2float2, 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)

Typedef Documentation

◆ NodeSocketPair

Definition at line 64 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 1018 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 396 of file node_select.cc.

◆ anonymous enum

anonymous enum
Enumerator
COM_RECALC_COMPOSITE 
COM_RECALC_VIEWER 

Definition at line 91 of file node_edit.cc.

◆ eNodeGroupSeparateType

Enumerator
NODE_GS_COPY 
NODE_GS_MOVE 

Definition at line 621 of file node_group.cc.

◆ NodeLinkAction

Enumerator
Begin 
Cancel 
Swap 
Confirm 

Definition at line 1337 of file node_relationships.cc.

◆ NodeResizeAction

Enumerator
Begin 
Cancel 
SnapInvertOn 
SnapInvertOff 

Definition at line 1016 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 121 of file node_intern.hh.

Function Documentation

◆ add_catalog_assets_menu_type()

◆ add_dragged_links_to_tree()

◆ 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< float2float2 > & positions,
const rctf & rect )
static

◆ add_reroute_exec()

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

Definition at line 148 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, 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()

◆ add_root_catalogs_menu_type()

◆ add_static_node()

◆ add_unassigned_assets_menu_type()

◆ all_links_muted()

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

Definition at line 1750 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 230 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 1073 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 764 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_input()

bNodeSocket * blender::ed::space_node::best_socket_input ( bNodeTree * ntree,
bNode * node,
int num,
int replace )
static

Definition at line 230 of file node_relationships.cc.

References bNode::inputs, LISTBASE_FOREACH, max_ii(), num, and socket_is_available().

Referenced by snode_autoconnect().

◆ 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/2]

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

◆ BLI_STATIC_ASSERT() [2/2]

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

◆ build_catalog_tree()

◆ 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< float2float2, 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

◆ 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 259 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 191 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_get_recalc_flags()

◆ compo_initjob()

◆ compo_progressjob()

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

Definition at line 286 of file node_edit.cc.

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

Referenced by compo_startjob().

◆ compo_redrawjob()

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

Definition at line 212 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 204 of file node_edit.cc.

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

Referenced by compo_startjob().

◆ compo_tag_output_nodes()

void blender::ed::space_node::compo_tag_output_nodes ( bNodeTree * nodetree,
int recalc_flags )
static

◆ compo_updatejob()

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

Definition at line 281 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()

◆ 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_is_in_use()

◆ 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_closure_evaluation()

const ComputeContext * blender::ed::space_node::compute_context_for_closure_evaluation ( const ComputeContext * closure_socket_context,
const bNodeSocket & closure_socket,
bke::ComputeContextCache & compute_context_cache,
const std::optional< nodes::ClosureSourceLocation > & source_location )
nodiscard

◆ 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()

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

◆ 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 )
static

◆ 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 359 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_for_space_node()

◆ count_multi_input_socket_links()

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

◆ create_dangling_reroute_inspection_string()

std::optional< std::string > blender::ed::space_node::create_dangling_reroute_inspection_string ( const bNodeTree & ntree,
const bNodeSocket & socket )
static

◆ create_declaration_inspection_string()

std::optional< std::string > blender::ed::space_node::create_declaration_inspection_string ( const bNodeSocket & socket)
static

◆ create_default_value_inspection_string()

std::optional< std::string > blender::ed::space_node::create_default_value_inspection_string ( const bNodeSocket & socket)
static

Definition at line 2068 of file node_draw.cc.

References create_inspection_string_for_default_socket_value(), and str.

Referenced by node_socket_get_tooltip().

◆ create_description_inspection_string()

std::optional< std::string > blender::ed::space_node::create_description_inspection_string ( const bNodeSocket & socket)
static

◆ create_drag_link()

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

◆ create_inspection_string_for_bundle()

◆ create_inspection_string_for_closure()

◆ create_inspection_string_for_default_socket_value()

◆ create_inspection_string_for_field_info()

void blender::ed::space_node::create_inspection_string_for_field_info ( const bNodeSocket & socket,
const geo_log::FieldInfoLog & value_log,
fmt::memory_buffer & buf )
static

◆ create_inspection_string_for_generic_value()

◆ create_inspection_string_for_geometry_info()

void blender::ed::space_node::create_inspection_string_for_geometry_info ( const geo_log::GeometryInfoLog & value_log,
fmt::memory_buffer & buf )
static

Definition at line 1689 of file node_draw.cc.

References BLI_STR_FORMAT_INT32_GROUPED_SIZE, BLI_str_format_int_grouped(), blender::nodes::geo_eval_log::GeometryInfoLog::component_types, blender::bke::GeometryComponent::Curve, blender::nodes::geo_eval_log::GeometryInfoLog::curve_info, blender::nodes::geo_eval_log::GeometryInfoLog::MeshInfo::edges_num, blender::bke::GeometryComponent::Edit, blender::nodes::geo_eval_log::GeometryInfoLog::edit_data_info, blender::nodes::geo_eval_log::GeometryInfoLog::MeshInfo::faces_num, blender::nodes::geo_eval_log::GeometryInfoLog::EditDataInfo::gizmo_transforms_num, blender::nodes::geo_eval_log::GeometryInfoLog::grease_pencil_info, blender::bke::GeometryComponent::GreasePencil, blender::nodes::geo_eval_log::GeometryInfoLog::grid_info, blender::nodes::geo_eval_log::GeometryInfoLog::VolumeInfo::grids_num, blender::nodes::geo_eval_log::GeometryInfoLog::EditDataInfo::has_deform_matrices, blender::nodes::geo_eval_log::GeometryInfoLog::EditDataInfo::has_deformed_positions, blender::bke::GeometryComponent::Instance, blender::nodes::geo_eval_log::GeometryInfoLog::instances_info, blender::nodes::geo_eval_log::GeometryInfoLog::InstancesInfo::instances_num, blender::nodes::geo_eval_log::GeometryInfoLog::GridInfo::is_empty, blender::Span< T >::is_empty(), blender::Span< T >::last(), blender::nodes::geo_eval_log::GeometryInfoLog::GreasePencilInfo::layers_num, blender::bke::GeometryComponent::Mesh, blender::nodes::geo_eval_log::GeometryInfoLog::mesh_info, blender::nodes::geo_eval_log::GeometryInfoLog::name, blender::bke::GeometryComponent::PointCloud, blender::nodes::geo_eval_log::GeometryInfoLog::pointcloud_info, blender::nodes::geo_eval_log::GeometryInfoLog::CurveInfo::points_num, blender::nodes::geo_eval_log::GeometryInfoLog::PointCloudInfo::points_num, blender::nodes::geo_eval_log::GeometryInfoLog::CurveInfo::splines_num, str, TIP_, to_string(), blender::nodes::geo_eval_log::GeometryInfoLog::MeshInfo::verts_num, blender::bke::GeometryComponent::Volume, and blender::nodes::geo_eval_log::GeometryInfoLog::volume_info.

Referenced by create_log_inspection_string().

◆ create_inspection_string_for_geometry_socket()

◆ create_log_inspection_string()

◆ create_multi_input_log_inspection_string()

◆ create_search_popup_block()

◆ current_node_instance_key()

◆ cursor_isect_multi_input_socket()

bool blender::ed::space_node::cursor_isect_multi_input_socket ( const float2float2 & 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 143 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 655 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 704 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 687 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 901 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 5345 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 4963 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 1110 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 1133 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 5282 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, compositor_is_in_use(), 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_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, log, 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, SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_PREVIEWS, tree_draw_order_calc_nodes(), blender::ed::space_node::TreeDrawContext::tree_logs, bNodeTree::type, U, blender::ed::space_node::TreeDrawContext::used_by_compositor, USER_EXPERIMENTAL_TEST, WorkSpace::viewer_path, and blender::ed::space_node::TreeDrawContext::window.

Referenced by node_draw_space().

◆ draw_tree_path()

◆ 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 765 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_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 float2float2 & cursor )
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 842 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< float2float2 > 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 4980 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(), 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_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 add_root_catalogs_draw(), and node_add_catalog_assets_draw().

◆ get_compute_context_hash_for_node_editor()

◆ get_context_path_node_compositor()

void blender::ed::space_node::get_context_path_node_compositor ( const bContext & C,
SpaceNode & snode,
Vector< ui::ContextPathItem > & path )
static

◆ get_context_path_node_geometry()

◆ get_context_path_node_shader()

◆ 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 892 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 841 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,
float2float2 & min,
float2float2 & 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 138 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()

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

◆ get_nodes_to_group()

◆ get_selected_node_for_insertion()

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

Definition at line 2270 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_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 111 of file node_group.cc.

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

Referenced by node_group_make_exec().

◆ 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 68 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().

◆ 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 float2float2 & 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 float2float2 & mouse )
static

◆ 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

◆ lines_of_text()

Vector< std::string > blender::ed::space_node::lines_of_text ( std::string text)
static

Definition at line 1999 of file node_draw.cc.

References result.

Referenced by create_multi_input_log_inspection_string().

◆ 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< float2float2 > blender::ed::space_node::link_path_intersection ( const bNodeLink & link,
const Span< float2float2 > 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 806 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 1047 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_node_tree_exec()

◆ 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 1545 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_catalog_assets_draw()

◆ 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 699 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_add_unassigned_assets_draw()

◆ node_add_unsupported_compositor_operation_error_message_button()

void blender::ed::space_node::node_add_unsupported_compositor_operation_error_message_button ( const bNode & node,
uiBlock & block,
const rctf & rect,
float & icon_offset )
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 785 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_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

◆ 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 121 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 116 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

◆ 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 106 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 988 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_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 353 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_collection_drop_poll()

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

Definition at line 1105 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 1125 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 565 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 580 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_buts_ycc()

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

Definition at line 549 of file drawnode.cc.

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

Referenced by node_composit_set_butfunc().

◆ 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 231 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 261 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 3404 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, C, bNode::color, 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::id, ID_REAL_USERS, bNode::identifier, is_node_panels_supported(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), blender::ed::space_node::TreeDrawContext::nested_group_infos, NODE_ACTIVE, node_add_error_message_button(), NODE_CUSTOM, NODE_CUSTOM_COLOR, NODE_CUSTOM_GROUP, NODE_DO_OUTPUT, node_draw_extra_info_panel(), node_draw_mute_line(), node_draw_panels(), node_draw_panels_background(), node_draw_shadow(), node_draw_sockets(), NODE_DY, node_get_colorid(), NODE_GROUP, 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, SpaceNode::overlay, padding(), POINTER_FROM_INT, blender::ed::space_node::TreeDrawContext::region, rgba_float_args_set(), bNode::runtime, blender::ed::space_node::TreeDrawContext::scene, SELECT, SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_PREVIEWS, TH_ACTIVE, TH_BACK, TH_NODE, TH_REDALERT, TH_SELECT, TIP_, bNodeTree::type, bNode::type_legacy, bNode::typeinfo, U, UI_block_draw(), UI_block_emboss_set(), UI_block_end_ex(), UI_BTYPE_BUT, UI_BTYPE_BUT_TOGGLE, UI_BTYPE_LABEL, UI_but_flag_enable(), UI_but_func_set(), UI_but_func_tooltip_set(), UI_but_icon_indicator_number_set(), UI_BUT_INACTIVE, UI_CNR_ALL, UI_CNR_BOTTOM_LEFT, UI_CNR_BOTTOM_RIGHT, UI_CNR_NONE, UI_CNR_TOP_LEFT, UI_CNR_TOP_RIGHT, UI_draw_roundbox_4fv(), UI_draw_roundbox_corner_set(), UI_GetThemeColor4fv(), UI_GetThemeColorBlend4f(), UI_GetThemeColorBlendShade4fv(), UI_UNIT_Y, uiDefBut(), uiDefIconBut(), USER_EXPERIMENTAL_TEST, blender::ed::space_node::TreeDrawContext::window, 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_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_hidden()

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

Definition at line 3836 of file node_draw.cc.

References blender::ed::space_node::SpaceNode_Runtime::aspect, BLI_rctf_cent_y(), BLI_rctf_size_x(), BLI_rctf_size_y(), blender::ed::space_node::TreeDrawContext::bmain, C, bNode::color, blender::ed::space_node::TreeDrawContext::depsgraph, blender::ui::Emboss, bNode::flag, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_PRIM_LINES, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), bNode::identifier, immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniformThemeColorShadeAlpha(), immVertex2f(), immVertexFormat(), NODE_ACTIVE, NODE_CUSTOM_COLOR, node_draw_extra_info_panel(), node_draw_mute_line(), node_draw_shadow(), node_draw_sockets(), NODE_DY, node_get_colorid(), 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, rgba_float_args_set(), round_fl_to_int(), bNode::runtime, SpaceNode::runtime, blender::ed::space_node::TreeDrawContext::scene, SELECT, TH_ACTIVE, TH_BACK, TH_NODE, TH_REDALERT, TH_SELECT, TH_TEXT, TIP_, bNode::typeinfo, U, UI_block_draw(), UI_block_emboss_set(), UI_block_end_ex(), UI_BTYPE_BUT_TOGGLE, UI_BTYPE_LABEL, 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_GetThemeColorBlend4f(), 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_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 2375 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< float2float2, 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 float2float2 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< float2float2, 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_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 5363 of file node_draw.cc.

References C, copy_v2_v2(), 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, 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, ID::name, node_draw_link_dragged(), NODE_GRID_STEP_SIZE, blender::bke::NODE_INSTANCE_KEY_NONE, bNodeTreePath::nodetree, SpaceNode::nodetree, SpaceNode::overlay, bNodeTreePath::parent_key, REGION_DRAW_POST_VIEW, REGION_DRAW_PRE_VIEW, ARegion::runtime, SpaceNode::runtime, SN_OVERLAY_SHOW_OVERLAYS, SN_OVERLAY_SHOW_PATH, snode_set_context(), snode_setup_v2d(), SNODE_SHOW_GPENCIL, SPACE_NODE, STREQ, STRNCPY(), 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, 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 4794 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(), blender::VArray< T >::ForSingle(), frame_node_draw_background(), frame_node_draw_outline(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, 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 1470 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_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 2689 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 755 of file space_node.cc.

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

Referenced by ED_spacetype_node().

◆ node_file_output_socket_draw()

◆ node_find_create_label()

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

Definition at line 1320 of file node_select.cc.

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

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 int2int2 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 258 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()

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

◆ 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 1727 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_hide_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 float2float2 & mouse )
static

Definition at line 114 of file node_select.cc.

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

Referenced by node_under_mouse_select().

◆ node_free()

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

Definition at line 738 of file space_node.cc.

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

Referenced by ED_spacetype_node().

◆ node_from_view()

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

Definition at line 399 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_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 2934 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_split()

◆ NODE_GGT_backdrop_sun_beams()

◆ 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 float2float2 & image_dims,
const float2float2 & image_offset,
float matrix_space[4][4] )
static

◆ node_gizmo_is_set_visible()

◆ 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_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 932 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(), 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_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 float2float2 & offset,
const bool make_copy )
static
Returns
True if successful.

Definition at line 514 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 1220 of file node_edit.cc.

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

Referenced by node_socket_toggle_exec().

◆ node_header_region_draw()

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

Definition at line 1416 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 1411 of file space_node.cc.

References ED_region_header_init().

Referenced by ED_spacetype_node().

◆ node_hide_toggle_exec()

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

◆ 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 1110 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 1667 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 * area )
static

Definition at line 746 of file space_node.cc.

References ListBase::first, SpaceNode::runtime, and ScrArea::spacedata.

Referenced by ED_spacetype_node().

◆ node_input_from_rect()

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

◆ node_input_to_rect()

void blender::ed::space_node::node_input_to_rect ( const bNode * node,
const float2float2 & dims,
const float2float2 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 int2int2 & 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_exec()

◆ node_join_invoke()

◆ 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< float2float2, 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< float2float2, NODE_LINK_RESOL+1 > & coords )

◆ node_link_calculate_multi_input_position()

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

◆ node_link_cancel()

◆ node_link_dim_factor()

float blender::ed::space_node::node_link_dim_factor ( const View2D & v2d,
const bNodeLink & link )

◆ node_link_draw_is_visible()

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

Definition at line 1693 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 2649 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

◆ 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 80 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 1053 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 1115 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 1120 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()

◆ 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 1100 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_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_find_node(), NODE_OT_group_edit(), NODE_OT_group_insert(), NODE_OT_group_make(), NODE_OT_group_separate(), NODE_OT_group_ungroup(), NODE_OT_hide_socket_toggle(), NODE_OT_hide_toggle(), NODE_OT_insert_offset(), NODE_OT_join(), 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_node_tree(), NODE_OT_node_copy_color(), NODE_OT_options_toggle(), NODE_OT_output_file_add_socket(), NODE_OT_output_file_move_active_socket(), NODE_OT_output_file_remove_active_socket(), 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_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 109 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 335 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_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_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_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_hide_toggle()

void blender::ed::space_node::NODE_OT_hide_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_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 2058 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_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_output_file_add_socket()

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

◆ NODE_OT_output_file_move_active_socket()

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

◆ NODE_OT_output_file_remove_active_socket()

void blender::ed::space_node::NODE_OT_output_file_remove_active_socket ( 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 1838 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 1653 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 1702 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_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_output_file_add_socket_exec()

◆ node_output_file_move_active_socket_exec()

◆ node_output_file_remove_active_socket_exec()

◆ 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 2626 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 1192 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 327 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 291 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 StringRefNull text )
static

◆ 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 1490 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 )

◆ node_socket_get_tooltip()

◆ node_socket_get_translation_context()

const char * blender::ed::space_node::node_socket_get_translation_context ( const bNodeSocket & socket)
static

Definition at line 238 of file node_draw.cc.

References bNodeSocket::runtime.

Referenced by node_socket_get_label(), and node_socket_get_tooltip().

◆ 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 175 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 212 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 float2float2 location,
const float2float2 size )
static

◆ node_socket_undefined_draw()

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

Definition at line 889 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 898 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 909 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 918 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 1500 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 1508 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 1850 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_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_texture_buts_bricks()

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

Definition at line 674 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 789 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 772 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 777 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 784 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_toolbar_region_draw()

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

Definition at line 1004 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 182 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_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 2299 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_undefined_or_unsupported()

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

◆ node_under_mouse_select()

bNode * blender::ed::space_node::node_under_mouse_select ( const SpaceNode & snode,
const float2float2 mouse )
static

◆ node_update_basis()

void blender::ed::space_node::node_update_basis ( const bContext & C,
const TreeDrawContext & ,
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 ( const bContext & C,
bNodeTree & ntree,
bNode & node,
uiBlock & block,
const int locx,
int & locy )
static

◆ node_update_basis_socket()

◆ node_update_hidden()

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

Based on settings in node, sets drawing rect info.

Definition at line 1306 of file node_draw.cc.

References cosf, HIDDEN_RAD, bNode::location, M_PI, max_ff(), NODE_DY, NODE_SOCKSIZE, node_to_view(), NODE_WIDTH, blender::math::round(), round, bNode::runtime, sinf, and UI_block_bounds_set_explicit().

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 278 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 ( SpaceNode & snode)

Definition at line 2116 of file drawnode.cc.

References g_batch_link, and nodelink_batch_draw().

Referenced by node_draw_nodetree().

◆ nodelink_batch_init()

◆ nodelink_batch_reset()

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

Definition at line 1899 of file drawnode.cc.

References g_batch_link, and GPU_vertbuf_attr_get_raw_data().

Referenced by nodelink_batch_draw(), and nodelink_batch_init().

◆ nodelink_batch_start()

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

Definition at line 2111 of file drawnode.cc.

References g_batch_link.

Referenced by node_draw_nodetree().

◆ nodelink_get_color_id()

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

Definition at line 2059 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 2237 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::drawarrow, blender::ed::space_node::NodeLinkDrawConfig::drawmuted, 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 1246 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 2557 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 float2float2 & location )
static

Definition at line 70 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 864 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 1434 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 4513 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 4230 of file node_draw.cc.

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

Referenced by node_update_nodetree().

◆ 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 1924 of file drawnode.cc.

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

Referenced by nodelink_batch_init().

◆ shader_preview_free()

◆ shader_preview_startjob()

◆ should_create_drag_link_search_menu()

◆ show_menu_socket_name()

bool blender::ed::space_node::show_menu_socket_name ( const bNode * node,
const bNodeSocket * sock )
static

Definition at line 1142 of file drawnode.cc.

References BLI_assert, SOCK_MENU, and bNodeSocket::type.

Referenced by std_node_socket_draw().

◆ snode_autoconnect()

◆ snode_autoconnect_input()

bool blender::ed::space_node::snode_autoconnect_input ( 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 float2float2 & center )
static

◆ socket_is_available()

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

◆ socket_is_occluded()

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

Definition at line 937 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()

float2float2 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_use_aov()

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

Definition at line 273 of file node_shader_preview.cc.

References SOCK_SHADER, and bNodeSocket::type.

Referenced by node_use_aov(), and shader_preview_startjob().

◆ 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()

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

Transform between View2Ds in the tree path.

Definition at line 261 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 1006 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 996 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,
StringRefNull text )
static

◆ std_node_socket_interface_draw()

◆ 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 1073 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()

◆ target_for_reroute()

const bNodeSocket * blender::ed::space_node::target_for_reroute ( const bNodeSocket & reroute_output)
static

◆ 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 333 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 345 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_select().

◆ tree_draw_order_update()

◆ 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 455 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 460 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 467 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, and ot.

◆ ui_template_node_asset_menu_items()

◆ ui_template_node_link_menu()

◆ 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 1060 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 2483 of file node_edit.cc.

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

Referenced by viewer_border_exec().

◆ viewer_border_exec()

◆ 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_mask_refresh()

◆ WIDGETGROUP_node_sbeam_draw_prepare()

◆ WIDGETGROUP_node_sbeam_poll()

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

◆ WIDGETGROUP_node_sbeam_refresh()

◆ WIDGETGROUP_node_sbeam_setup()

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

◆ 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 1874 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 1873 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ batch

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

◆ batch_single

gpu::Batch* blender::ed::space_node::batch_single

Definition at line 1881 of file drawnode.cc.

◆ colid_id

uint blender::ed::space_node::colid_id

Definition at line 1884 of file drawnode.cc.

◆ colid_step

GPUVertBufRaw blender::ed::space_node::colid_step

Definition at line 1890 of file drawnode.cc.

◆ count

uint blender::ed::space_node::count

Definition at line 1895 of file drawnode.cc.

Referenced by node_socket_count_links().

◆ dash_params_id

uint blender::ed::space_node::dash_params_id

Definition at line 1887 of file drawnode.cc.

◆ dash_params_step

GPUVertBufRaw blender::ed::space_node::dash_params_step

Definition at line 1893 of file drawnode.cc.

◆ dim_factor_id

uint blender::ed::space_node::dim_factor_id

Definition at line 1885 of file drawnode.cc.

◆ dim_factor_step

GPUVertBufRaw blender::ed::space_node::dim_factor_step

Definition at line 1891 of file drawnode.cc.

◆ enabled

bool blender::ed::space_node::enabled

◆ end_color_id

uint blender::ed::space_node::end_color_id

Definition at line 1884 of file drawnode.cc.

◆ end_color_step

GPUVertBufRaw blender::ed::space_node::end_color_step

Definition at line 1890 of file drawnode.cc.

◆ [struct]

◆ has_back_link_id

uint blender::ed::space_node::has_back_link_id

Definition at line 1888 of file drawnode.cc.

◆ has_back_link_step

GPUVertBufRaw blender::ed::space_node::has_back_link_step

Definition at line 1894 of file drawnode.cc.

◆ inst_vbo

gpu::VertBuf* blender::ed::space_node::inst_vbo

Definition at line 1882 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 1876 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 1875 of file drawnode.cc.

Referenced by nodelink_batch_init().

◆ muted_id

uint blender::ed::space_node::muted_id

Definition at line 1884 of file drawnode.cc.

◆ muted_step

GPUVertBufRaw blender::ed::space_node::muted_step

Definition at line 1890 of file drawnode.cc.

◆ 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 627 of file node_group.cc.

Referenced by NODE_OT_group_separate().

◆ p0_id

uint blender::ed::space_node::p0_id

Definition at line 1883 of file drawnode.cc.

◆ p0_step

GPUVertBufRaw blender::ed::space_node::p0_step

Definition at line 1889 of file drawnode.cc.

◆ p1_id

uint blender::ed::space_node::p1_id

Definition at line 1883 of file drawnode.cc.

◆ p1_step

GPUVertBufRaw blender::ed::space_node::p1_step

Definition at line 1889 of file drawnode.cc.

◆ p2_id

uint blender::ed::space_node::p2_id

Definition at line 1883 of file drawnode.cc.

◆ p2_step

GPUVertBufRaw blender::ed::space_node::p2_step

Definition at line 1889 of file drawnode.cc.

◆ p3_id

uint blender::ed::space_node::p3_id

Definition at line 1883 of file drawnode.cc.

◆ p3_step

GPUVertBufRaw blender::ed::space_node::p3_step

Definition at line 1889 of file drawnode.cc.

◆ start_color_id

uint blender::ed::space_node::start_color_id

Definition at line 1884 of file drawnode.cc.

◆ start_color_step

GPUVertBufRaw blender::ed::space_node::start_color_step

Definition at line 1890 of file drawnode.cc.

◆ 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.50, 0.60, 0.40, 1.0},
}

Definition at line 974 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().

◆ thickness_id

uint blender::ed::space_node::thickness_id

Definition at line 1886 of file drawnode.cc.

◆ thickness_step

GPUVertBufRaw blender::ed::space_node::thickness_step

Definition at line 1892 of file drawnode.cc.

◆ 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 1470 of file node_draw.cc.

Referenced by node_socket_outline_color_get().