Blender V5.0
node_common.cc File Reference
#include <cstddef>
#include <cstring>
#include "DNA_asset_types.h"
#include "DNA_node_types.h"
#include "BLI_array.hh"
#include "BLI_disjoint_set.hh"
#include "BLI_listbase.h"
#include "BLI_map.hh"
#include "BLI_multi_value_map.hh"
#include "BLI_set.hh"
#include "BLI_stack.hh"
#include "BLI_string.h"
#include "BLI_string_ref.hh"
#include "BLI_vector_set.hh"
#include "BLT_translation.hh"
#include "BKE_node.hh"
#include "BKE_node_runtime.hh"
#include "BKE_node_tree_interface.hh"
#include "MEM_guardedalloc.h"
#include "NOD_common.hh"
#include "NOD_composite.hh"
#include "NOD_node_declaration.hh"
#include "NOD_node_extra_info.hh"
#include "NOD_register.hh"
#include "NOD_socket.hh"
#include "NOD_socket_declarations.hh"
#include "NOD_socket_declarations_geometry.hh"
#include "UI_resources.hh"
#include "ED_node.hh"
#include "node_common.h"
#include "node_util.hh"

Go to the source code of this file.

Classes

struct  RerouteTargetPriority
class  MultiValueMap< Key, Value >
class  Stack< T, InlineBufferCapacity, Allocator >

Namespaces

namespace  blender
namespace  blender::nodes

Functions

static std::function< ID *(const bNode &node)> blender::nodes::get_default_id_getter (const bNodeTreeInterface &tree_interface, const bNodeTreeInterfaceSocket &io_socket)
static std::function< void(bNode &node, bNodeSocket &socket, const char *data_path)> blender::nodes::get_init_socket_fn (const bNodeTreeInterface &interface, const bNodeTreeInterfaceSocket &io_socket)
static BaseSocketDeclarationBuilderblender::nodes::build_interface_socket_declaration (const bNodeTree &tree, const bNodeTreeInterfaceSocket &io_socket, const std::optional< StructureType > structure_type, const eNodeSocketInOut in_out, DeclarationListBuilder &b)
static void blender::nodes::node_group_declare_panel_recursive (DeclarationListBuilder &b, const bNode &node, const bNodeTree &group, const Map< const bNodeTreeInterfaceSocket *, StructureType > &structure_type_by_socket, const bNodeTreeInterfacePanel &io_parent_panel, const bool is_root)
void blender::nodes::node_group_declare (NodeDeclarationBuilder &b)
static void blender::nodes::group_input_declare (NodeDeclarationBuilder &b)
static void blender::nodes::group_output_declare (NodeDeclarationBuilder &b)
static bool blender::nodes::group_input_insert_link (blender::bke::NodeInsertLinkParams &params)
static bool blender::nodes::group_output_insert_link (blender::bke::NodeInsertLinkParams &params)
static void blender::nodes::node_group_input_layout (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void blender::nodes::node_group_output_layout (uiLayout *layout, bContext *C, PointerRNA *ptr)
Node Group
static bNodeSocketfind_matching_socket (ListBase &sockets, StringRef identifier)
bNodeSocketnode_group_find_input_socket (bNode *groupnode, const blender::StringRef identifier)
bNodeSocketnode_group_find_output_socket (bNode *groupnode, const blender::StringRef identifier)
void node_group_label (const bNodeTree *, const bNode *node, char *label, int label_maxncpy)
int node_group_ui_class (const bNode *node)
bool node_group_poll_instance (const bNode *node, const bNodeTree *nodetree, const char **r_disabled_hint)
std::string node_group_ui_description (const bNode &node)
Node Frame
static void node_frame_init (bNodeTree *, bNode *node)
void register_node_type_frame ()
Node Re-Route
static void node_reroute_declare (blender::nodes::NodeDeclarationBuilder &b)
static void node_reroute_init (bNodeTree *, bNode *node)
void register_node_type_reroute ()
void ntree_update_reroute_nodes (bNodeTree *ntree)
Node #GROUP_INPUT / #GROUP_OUTPUT
bNodeSocketnode_group_input_find_socket (bNode *node, const StringRef identifier)
static void node_group_input_extra_info (blender::nodes::NodeExtraInfoParams &params)
void register_node_type_group_input ()
bNodeSocketnode_group_output_find_socket (bNode *node, const StringRef identifier)
static void node_group_output_extra_info (blender::nodes::NodeExtraInfoParams &params)
void register_node_type_group_output ()

Function Documentation

◆ find_matching_socket()

bNodeSocket * find_matching_socket ( ListBase & sockets,
StringRef identifier )
static

Definition at line 63 of file node_common.cc.

References LISTBASE_FOREACH.

Referenced by node_group_find_input_socket(), and node_group_find_output_socket().

◆ node_frame_init()

void node_frame_init ( bNodeTree * ,
bNode * node )
static

Definition at line 525 of file node_common.cc.

References data, MEM_callocN(), NODE_FRAME_SHRINK, and bNode::storage.

Referenced by register_node_type_frame().

◆ node_group_find_input_socket()

bNodeSocket * node_group_find_input_socket ( bNode * groupnode,
const blender::StringRef identifier )

◆ node_group_find_output_socket()

bNodeSocket * node_group_find_output_socket ( bNode * groupnode,
const blender::StringRef identifier )

◆ node_group_input_extra_info()

void node_group_input_extra_info ( blender::nodes::NodeExtraInfoParams & params)
static

Definition at line 892 of file node_common.cc.

References params.

Referenced by register_node_type_group_input().

◆ node_group_input_find_socket()

bNodeSocket * node_group_input_find_socket ( bNode * node,
const StringRef identifier )

◆ node_group_label()

void node_group_label ( const bNodeTree * ,
const bNode * node,
char * label,
int label_maxncpy )

◆ node_group_output_extra_info()

◆ node_group_output_find_socket()

bNodeSocket * node_group_output_find_socket ( bNode * node,
const StringRef identifier )

◆ node_group_poll_instance()

bool node_group_poll_instance ( const bNode * node,
const bNodeTree * nodetree,
const char ** r_disabled_hint )

◆ node_group_ui_class()

◆ node_group_ui_description()

◆ node_reroute_declare()

◆ node_reroute_init()

void node_reroute_init ( bNodeTree * ,
bNode * node )
static

Definition at line 580 of file node_common.cc.

References data, MEM_callocN(), bNode::storage, and STRNCPY().

Referenced by register_node_type_reroute().

◆ ntree_update_reroute_nodes()

◆ register_node_type_frame()

◆ register_node_type_group_input()

◆ register_node_type_group_output()

◆ register_node_type_reroute()