|
Blender V4.3
|
Functions | |
Link Viewer Operator | |
| static bool | socket_can_be_viewed (const bNode &node, const bNodeSocket &socket) |
| static bNodeSocket * | node_link_viewer_get_socket (bNodeTree &ntree, bNode &viewer_node, bNodeSocket &src_socket) |
| static bool | is_viewer_node (const bNode &node) |
| static bool | is_viewer_socket_in_viewer (const bNodeSocket &socket) |
| static bool | is_viewer_socket (const bNodeSocket &socket) |
| static int | get_default_viewer_type (const bContext *C) |
| static void | remove_links_to_unavailable_viewer_sockets (bNodeTree &btree, bNode &viewer_node) |
| static bNodeSocket * | determine_socket_to_view (bNode &node_to_view) |
| static void | finalize_viewer_link (const bContext &C, SpaceNode &snode, bNode &viewer_node, bNodeLink &viewer_link) |
| static const bNode * | find_overlapping_node (const bNodeTree &tree, const rctf &rect, const Span< const bNode * > ignored_nodes) |
| static Vector< float2 > | get_viewer_node_position_candidates (const float2 initial, const float step_distance, const float max_distance) |
| static void | position_viewer_node (bNodeTree &tree, bNode &viewer_node, const bNode &node_to_view, const ARegion ®ion) |
| static int | view_socket (const bContext &C, SpaceNode &snode, bNodeTree &btree, bNode &bnode_to_view, bNodeSocket &bsocket_to_view) |
| static int | node_link_viewer (const bContext &C, bNode &bnode_to_view, bNodeSocket *bsocket_to_view) |
|
static |
Definition at line 502 of file node_relationships.cc.
References bNode::flag, is_viewer_socket(), NODE_DO_OUTPUT, blender::ed::space_node::node_to_view(), SOCK_GEOMETRY, socket_can_be_viewed(), and bNodeSocket::type.
Referenced by node_link_viewer().
|
static |
Definition at line 579 of file node_relationships.cc.
References blender::ed::viewer_path::activate_geometry_node(), CTX_data_main(), ED_node_tree_propagate_change(), SpaceNode::edittree, bNode::flag, bNodeLink::flag, NODE_DO_OUTPUT, NTREE_GEOMETRY, remove_links_to_unavailable_viewer_sockets(), and bNodeTree::type.
Referenced by view_socket().
|
static |
Definition at line 595 of file node_relationships.cc.
References BLI_rctf_isect(), blender::Span< T >::contains(), node, and tree.
Referenced by position_viewer_node().
|
static |
Definition at line 485 of file node_relationships.cc.
References CMP_NODE_VIEWER, CTX_wm_space_node(), ED_node_is_compositor(), and GEO_NODE_VIEWER.
Referenced by view_socket().
|
static |
Builds a list of possible locations for the viewer node that follows some search pattern where positions closer to the initial position come first.
Definition at line 617 of file node_relationships.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), arc_length(), ceilf, float, and M_PI.
Referenced by position_viewer_node().
|
static |
Definition at line 462 of file node_relationships.cc.
References ELEM.
Referenced by is_viewer_socket(), is_viewer_socket_in_viewer(), and view_socket().
|
static |
Definition at line 477 of file node_relationships.cc.
References is_viewer_node(), and is_viewer_socket_in_viewer().
Referenced by determine_socket_to_view(), and view_socket().
|
static |
Definition at line 467 of file node_relationships.cc.
References BLI_assert, and is_viewer_node().
Referenced by is_viewer_socket().
|
static |
Definition at line 808 of file node_relationships.cc.
References CTX_wm_space_node(), determine_socket_to_view(), SpaceNode::edittree, OPERATOR_CANCELLED, and view_socket().
Referenced by blender::ed::space_node::node_active_link_viewer_exec().
|
static |
Find the socket to link to in a viewer node.
Definition at line 433 of file node_relationships.cc.
References BLI_assert, CD_AUTO_FROM_NAME, NodeGeometryViewer::data_type, ListBase::first, bNode::inputs, ListBase::last, SOCK_GEOMETRY, socket_can_be_viewed(), blender::bke::socket_type_to_custom_data_type(), bNode::storage, bNode::type, bNodeSocket::type, and blender::nodes::update_node_declaration_and_sockets().
Referenced by view_socket().
|
static |
Positions the viewer node so that it is slightly to the right and top of the node to view. The algorithm tries to avoid moving the viewer to a place where it would overlap with other nodes. For that it iterates over many possible locations with increasing distance to the node to view.
Definition at line 644 of file node_relationships.cc.
References BLI_rctf_inside_rctf(), BLI_rctf_pad(), BLI_rctf_size_x(), BLI_rctf_size_y(), dist_seg_seg_v2(), find_overlapping_node(), get_viewer_node_position_candidates(), bNode::locx, bNode::locy, blender::ed::space_node::node_to_view(), bNode::parent, bNode::runtime, tree, blender::ed::space_node::tree_draw_order_update(), bNode::ui_order, UI_SCALE_FAC, UI_view2d_region_to_view_rctf(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by view_socket().
|
static |
Definition at line 491 of file node_relationships.cc.
References bNodeTree::links, LISTBASE_FOREACH_MUTABLE, blender::bke::node_remove_link(), and SOCK_UNAVAIL.
Referenced by finalize_viewer_link().
|
static |
Definition at line 407 of file node_relationships.cc.
References ELEM, bNodeSocket::idname, NTREE_GEOMETRY, SOCK_BOOLEAN, SOCK_FLOAT, SOCK_GEOMETRY, SOCK_INT, SOCK_MATRIX, SOCK_MENU, SOCK_RGBA, SOCK_ROTATION, SOCK_VECTOR, STREQ, bNodeSocket::type, and bNodeSocket::typeinfo.
Referenced by determine_socket_to_view(), and node_link_viewer_get_socket().
|
static |
Definition at line 735 of file node_relationships.cc.
References blender::ed::space_node::add_static_node(), BKE_ntree_update_tag_link_changed(), CTX_wm_region(), ELEM, finalize_viewer_link(), bNodeSocket::flag, bNodeLink::fromnode, bNodeLink::fromsock, get_default_viewer_type(), is_viewer_node(), is_viewer_socket(), bNodeTree::links, LISTBASE_FOREACH_MUTABLE, node, blender::bke::node_add_link(), NODE_DO_OUTPUT, node_link_viewer_get_socket(), OPERATOR_CANCELLED, OPERATOR_FINISHED, position_viewer_node(), bNodeSocket::runtime, and UI_SCALE_FAC.
Referenced by node_link_viewer().