Blender  V3.3
Classes | Namespaces | Functions
node_relationships.cc File Reference
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
#include "DNA_node_types.h"
#include "BLI_easing.h"
#include "BKE_anim_data.h"
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_lib_id.h"
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_node_tree_update.h"
#include "BKE_screen.h"
#include "ED_node.h"
#include "ED_render.h"
#include "ED_screen.h"
#include "ED_space_api.h"
#include "ED_spreadsheet.h"
#include "ED_util.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_prototypes.h"
#include "DEG_depsgraph.h"
#include "WM_api.h"
#include "WM_types.h"
#include "GPU_state.h"
#include "UI_interface_icons.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "BLT_translation.h"
#include "NOD_node_declaration.hh"
#include "NOD_node_tree_ref.hh"
#include "NOD_socket_declarations.hh"
#include "NOD_socket_declarations_geometry.hh"
#include "node_intern.hh"

Go to the source code of this file.

Classes

struct  bNodeListItem
 
struct  NodeInsertOfsData
 
struct  blender::ed::space_node::LinkAndPosition
 

Namespaces

 blender
 
 blender::ed
 
 blender::ed::space_node
 
 blender::ed::space_node::viewer_linking
 

Functions

static void clear_picking_highlight (ListBase *links)
 
Add Node
static bNodeLinkblender::ed::space_node::create_drag_link (bNode &node, bNodeSocket &sock)
 
static void blender::ed::space_node::pick_link (wmOperator &op, bNodeLinkDrag &nldrag, SpaceNode &snode, bNode *node, bNodeLink &link_to_pick)
 
static void blender::ed::space_node::pick_input_link_by_link_intersect (const bContext &C, wmOperator &op, bNodeLinkDrag &nldrag, const float2 &cursor)
 
static bool blender::ed::space_node::socket_is_available (bNodeTree *UNUSED(ntree), bNodeSocket *sock, const bool allow_used)
 
static bNodeSocketblender::ed::space_node::best_socket_output (bNodeTree *ntree, bNode *node, bNodeSocket *sock_target, const bool allow_multiple)
 
static bNodeSocketblender::ed::space_node::best_socket_input (bNodeTree *ntree, bNode *node, int num, int replace)
 
static bool blender::ed::space_node::snode_autoconnect_input (SpaceNode &snode, bNode *node_fr, bNodeSocket *sock_fr, bNode *node_to, bNodeSocket *sock_to, int replace)
 
void blender::ed::space_node::sort_multi_input_socket_links (SpaceNode &snode, bNode &node, bNodeLink *drag_link, const float2 *cursor)
 
static void blender::ed::space_node::snode_autoconnect (SpaceNode &snode, const bool allow_multiple, const bool replace)
 
Link Viewer Operator
static bool blender::ed::space_node::viewer_linking::socket_can_be_viewed (const OutputSocketRef &socket)
 
static eCustomDataType blender::ed::space_node::viewer_linking::socket_type_to_custom_data_type (const eNodeSocketDatatype socket_type)
 
static bNodeSocketblender::ed::space_node::viewer_linking::node_link_viewer_get_socket (bNodeTree &ntree, bNode &viewer_node, bNodeSocket &src_socket)
 
static bool blender::ed::space_node::viewer_linking::is_viewer_node (const NodeRef &node)
 
static Vector< const NodeRef * > blender::ed::space_node::viewer_linking::find_viewer_nodes (const NodeTreeRef &tree)
 
static bool blender::ed::space_node::viewer_linking::is_viewer_socket_in_viewer (const InputSocketRef &socket)
 
static bool blender::ed::space_node::viewer_linking::is_linked_to_viewer (const OutputSocketRef &socket, const NodeRef &viewer_node)
 
static int blender::ed::space_node::viewer_linking::get_default_viewer_type (const bContext *C)
 
static void blender::ed::space_node::viewer_linking::remove_links_to_unavailable_viewer_sockets (bNodeTree &btree, bNode &viewer_node)
 
static const NodeRefblender::ed::space_node::viewer_linking::get_existing_viewer (const NodeTreeRef &tree)
 
static const OutputSocketRefblender::ed::space_node::viewer_linking::find_output_socket_to_be_viewed (const NodeRef *active_viewer_node, const NodeRef &node_to_view)
 
static int blender::ed::space_node::viewer_linking::link_socket_to_viewer (const bContext &C, bNode *viewer_bnode, bNode &bnode_to_view, bNodeSocket &bsocket_to_view)
 
static int blender::ed::space_node::viewer_linking::node_link_viewer (const bContext &C, bNode &bnode_to_view)
 
Link to Viewer Node Operator
static int blender::ed::space_node::node_active_link_viewer_exec (bContext *C, wmOperator *UNUSED(op))
 
static bool blender::ed::space_node::node_active_link_viewer_poll (bContext *C)
 
void blender::ed::space_node::NODE_OT_link_viewer (wmOperatorType *ot)
 
Add Link Operator
static bool blender::ed::space_node::dragged_links_are_detached (const bNodeLinkDrag &nldrag)
 
static bool blender::ed::space_node::should_create_drag_link_search_menu (const bNodeTree &node_tree, const bNodeLinkDrag &nldrag)
 
static void blender::ed::space_node::draw_draglink_tooltip (const bContext *UNUSED(C), ARegion *UNUSED(region), void *arg)
 
static void blender::ed::space_node::draw_draglink_tooltip_activate (const ARegion &region, bNodeLinkDrag &nldrag)
 
static void blender::ed::space_node::draw_draglink_tooltip_deactivate (const ARegion &region, bNodeLinkDrag &nldrag)
 
static void blender::ed::space_node::node_link_update_header (bContext *C, bNodeLinkDrag *UNUSED(nldrag))
 
static int blender::ed::space_node::node_count_links (const bNodeTree &ntree, const bNodeSocket &socket)
 
static void blender::ed::space_node::node_remove_extra_links (SpaceNode &snode, bNodeLink &link)
 
static void blender::ed::space_node::node_link_exit (bContext &C, wmOperator &op, const bool apply_links)
 
static void blender::ed::space_node::node_link_find_socket (bContext &C, wmOperator &op, const float2 &cursor)
 
static int blender::ed::space_node::node_link_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static std::unique_ptr< bNodeLinkDragblender::ed::space_node::node_link_init (SpaceNode &snode, float2 cursor, const bool detach)
 
static int blender::ed::space_node::node_link_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static void blender::ed::space_node::node_link_cancel (bContext *C, wmOperator *op)
 
void blender::ed::space_node::NODE_OT_link (wmOperatorType *ot)
 
Make Link Operator
static int blender::ed::space_node::node_make_link_exec (bContext *C, wmOperator *op)
 
void blender::ed::space_node::NODE_OT_link_make (wmOperatorType *ot)
 
Node Link Intersect
static bool blender::ed::space_node::node_links_intersect (bNodeLink &link, const float mcoords[][2], int tot)
 
Cut Link Operator
static int blender::ed::space_node::cut_links_exec (bContext *C, wmOperator *op)
 
void blender::ed::space_node::NODE_OT_links_cut (wmOperatorType *ot)
 
Mute Links Operator
static int blender::ed::space_node::mute_links_exec (bContext *C, wmOperator *op)
 
void blender::ed::space_node::NODE_OT_links_mute (wmOperatorType *ot)
 
Detach Links Operator
static int blender::ed::space_node::detach_links_exec (bContext *C, wmOperator *UNUSED(op))
 
void blender::ed::space_node::NODE_OT_links_detach (wmOperatorType *ot)
 
Set Parent Operator
static int blender::ed::space_node::node_parent_set_exec (bContext *C, wmOperator *UNUSED(op))
 
void blender::ed::space_node::NODE_OT_parent_set (wmOperatorType *ot)
 
Attach Operator
static bNodeblender::ed::space_node::node_find_frame_to_attach (ARegion &region, const bNodeTree &ntree, const int mouse_xy[2])
 
static int blender::ed::space_node::node_attach_invoke (bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
 
void blender::ed::space_node::NODE_OT_attach (wmOperatorType *ot)
 
Automatic Node Insert on Dragging
static bool blender::ed::space_node::ed_node_link_conditions (ScrArea *area, bool test, SpaceNode **r_snode, bNode **r_select)
 
Node Line Intersection Test
void ED_node_link_intersect_test (ScrArea *area, int test)
 
Note Link Insert
void ED_node_link_insert (Main *bmain, ScrArea *area)
 

Join Nodes Operator

#define NODE_JOIN_DONE   1
 
#define NODE_JOIN_IS_DESCENDANT   2
 
static void blender::ed::space_node::node_join_attach_recursive (bNode *node, bNode *frame)
 
static int blender::ed::space_node::node_join_exec (bContext *C, wmOperator *UNUSED(op))
 
void blender::ed::space_node::NODE_OT_join (wmOperatorType *ot)
 

Detach Operator

#define NODE_DETACH_DONE   1
 
#define NODE_DETACH_IS_DESCENDANT   2
 
static void blender::ed::space_node::node_detach_recursive (bNode *node)
 
static int blender::ed::space_node::node_detach_exec (bContext *C, wmOperator *UNUSED(op))
 
void blender::ed::space_node::NODE_OT_detach (wmOperatorType *ot)
 

Node Insert Offset Operator

#define NODE_INSOFS_ANIM_DURATION   0.25f
 
static int blender::ed::space_node::get_main_socket_priority (const bNodeSocket *socket)
 
static bNodeSocketblender::ed::space_node::get_main_socket (bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out)
 
static bool blender::ed::space_node::node_parents_offset_flag_enable_cb (bNode *parent, void *UNUSED(userdata))
 
static void blender::ed::space_node::node_offset_apply (bNode &node, const float offset_x)
 
static void blender::ed::space_node::node_parent_offset_apply (NodeInsertOfsData *data, bNode *parent, const float offset_x)
 
static bool blender::ed::space_node::node_link_insert_offset_frame_chain_cb (bNode *fromnode, bNode *tonode, void *userdata, const bool reversed)
 
static void blender::ed::space_node::node_link_insert_offset_frame_chains (const bNodeTree *ntree, const bNode *parent, NodeInsertOfsData *data, const bool reversed)
 
static bool blender::ed::space_node::node_link_insert_offset_chain_cb (bNode *fromnode, bNode *tonode, void *userdata, const bool reversed)
 
static void blender::ed::space_node::node_link_insert_offset_ntree (NodeInsertOfsData *iofsd, ARegion *region, const int mouse_xy[2], const bool right_alignment)
 
static int blender::ed::space_node::node_insert_offset_modal (bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
 
static int blender::ed::space_node::node_insert_offset_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void blender::ed::space_node::NODE_OT_insert_offset (wmOperatorType *ot)
 

Macro Definition Documentation

◆ NODE_DETACH_DONE

#define NODE_DETACH_DONE   1

Definition at line 1808 of file node_relationships.cc.

◆ NODE_DETACH_IS_DESCENDANT

#define NODE_DETACH_IS_DESCENDANT   2

Definition at line 1809 of file node_relationships.cc.

◆ NODE_INSOFS_ANIM_DURATION

#define NODE_INSOFS_ANIM_DURATION   0.25f

Definition at line 2138 of file node_relationships.cc.

◆ NODE_JOIN_DONE

#define NODE_JOIN_DONE   1

Definition at line 1624 of file node_relationships.cc.

◆ NODE_JOIN_IS_DESCENDANT

#define NODE_JOIN_IS_DESCENDANT   2

Definition at line 1625 of file node_relationships.cc.

Function Documentation

◆ clear_picking_highlight()

static void clear_picking_highlight ( ListBase links)
static

◆ ED_node_link_insert()

void ED_node_link_insert ( struct Main bmain,
struct ScrArea area 
)

◆ ED_node_link_intersect_test()

void ED_node_link_intersect_test ( struct ScrArea area,
int  test 
)