28 IFACE_(node_type_.ui_name),
29 node_type_.deprecation_notice ?
IFACE_(
" (Deprecated)") :
"",
38 items_.append({std::move(
name), std::move(
fn), weight});
70 if (new_node_socket ==
nullptr) {
103 added_nodes_.append(
node);
116 if (new_node.
typeinfo->updatefunc) {
133 if (!socket_names.
add(socket.
name)) {
144 main_socket = &socket;
146 connectable_sockets.
append(&socket);
155 const int weight = (&socket == main_socket) ? 0 : -1 -
i;
159 bNode &node = params.add_node(node_type);
160 socket.make_available(node);
161 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
void add_item_full_name(std::string name, SocketLinkOperation::LinkSocketFn fn, int weight=0)
eNodeSocketInOut in_out() const
void connect_available_socket(bNode &new_node, StringRef socket_name)
bNode & add_node(StringRef idname)
void connect_available_socket_by_identifier(bNode &new_node, StringRef socket_identifier)
void connect_socket(bNode &new_node, bNodeSocket &new_socket)
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
bNodeSocket * node_find_socket(bNode &node, eNodeSocketInOut in_out, StringRef identifier)
bNode * node_add_node(const bContext *C, bNodeTree &ntree, StringRef idname, std::optional< int > unique_identifier=std::nullopt)
bNodeLink & node_add_link(bNodeTree &ntree, bNode &fromnode, bNodeSocket &fromsock, bNode &tonode, bNodeSocket &tosock)
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
std::function< void(LinkSearchOpParams &link_params)> LinkSocketFn