32 items_.
append({std::move(name), std::move(fn), weight});
64 if (new_node_socket ==
nullptr) {
80 std::string idname_str = idname;
113 if (!socket_names.
add(socket.
name)) {
124 main_socket = &socket;
126 connectable_sockets.
append(&socket);
128 for (
const int i : connectable_sockets.
index_range()) {
135 const int weight = (&socket == main_socket) ? 0 : -1 - i;
139 bNode &node = params.add_node(node_type);
140 socket.make_available(node);
141 params.update_and_connect_available_socket(node, socket.name);
Main * CTX_data_main(const bContext *C)
#define BLI_assert_unreachable()
constexpr IndexRange index_range() const
void append(const T &value)
IndexRange index_range() const
const bke::bNodeType & node_type() const
const SpaceNode & space_node() const
void add_item(std::string socket_name, SocketLinkOperation::LinkSocketFn fn, int weight=0)
const bNodeTree & node_tree() const
const bNodeSocket & other_socket() const
eNodeSocketInOut in_out() const
void connect_available_socket(bNode &new_node, StringRef socket_name)
bNode & add_node(StringRef idname)
void update_and_connect_available_socket(bNode &new_node, StringRef socket_name)
Span< SocketDeclaration * > sockets(eNodeSocketInOut in_out) const
bool is_default_link_socket
virtual bool can_connect(const bNodeSocket &socket) const =0
bNodeLink * node_add_link(bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock, bNode *tonode, bNodeSocket *tosock)
bNode * node_add_node(const bContext *C, bNodeTree *ntree, const char *idname)
bNodeSocket * node_find_enabled_socket(bNode &node, eNodeSocketInOut in_out, StringRef name)
void node_socket_move_default_value(Main &bmain, bNodeTree &tree, bNodeSocket &src, bNodeSocket &dst)
void search_link_ops_for_basic_node(GatherLinkSearchOpParams ¶ms)
void search_link_ops_for_declarations(GatherLinkSearchOpParams ¶ms, Span< SocketDeclaration * > declarations)
void update_node_declaration_and_sockets(bNodeTree &ntree, bNode &node)
#define UI_MENU_ARROW_SEP
bNodeTypeHandle * typeinfo
blender::nodes::NodeDeclaration * static_declaration
const char * deprecation_notice
std::function< void(LinkSearchOpParams &link_params)> LinkSocketFn