Blender
V3.3
|
#include <cstddef>
#include <cstring>
#include "DNA_node_types.h"
#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_utildefines.h"
#include "BLT_translation.h"
#include "BKE_node.h"
#include "BKE_node_tree_update.h"
#include "RNA_types.h"
#include "MEM_guardedalloc.h"
#include "NOD_common.h"
#include "node_common.h"
#include "node_util.h"
Go to the source code of this file.
|
static |
Definition at line 111 of file node_common.cc.
References bNodeSocket::identifier, bNodeSocket::idname, bNodeSocketType::interface_init_socket, bNodeSocket::name, node, nodeAddSocket(), and bNodeSocket::typeinfo.
Referenced by group_verify_socket_list().
Definition at line 405 of file node_common.cc.
References bNode::done, ListBase::first, bNode::next, node, node_is_connected_to_output_recursive(), bNodeTree::nodes, and ntree.
Referenced by bake_object_check().
Definition at line 417 of file node_common.cc.
References ListBase::first, node, bNodeTree::nodes, and ntree.
|
static |
Definition at line 46 of file node_common.cc.
References LISTBASE_FOREACH.
Referenced by group_verify_socket_list(), node_group_find_input_socket(), and node_group_find_output_socket().
|
static |
Used for group nodes and group input/output nodes to update the list of input or output sockets on a node to match the provided interface. Assumes that verify_lb is the node's matching input or output socket list, depending on whether the node is a group input/output or a group node.
Definition at line 156 of file node_common.cc.
References add_new_socket_from_interface(), BKE_ntree_update_tag_interface(), BLI_addtail(), BLI_listbase_clear(), BLI_remlink(), find_matching_socket(), bNodeSocket::identifier, ListBase::last, LISTBASE_FOREACH, LISTBASE_FOREACH_INDEX, LISTBASE_FOREACH_MUTABLE, node, nodeAddSocket(), nodeRemoveSocket(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), STREQ, and update_socket_to_match_interface().
Referenced by node_group_input_update(), node_group_output_update(), and node_group_update().
|
static |
Definition at line 434 of file node_common.cc.
References ELEM, node, NODE_GROUP_INPUT, NODE_GROUP_OUTPUT, SOCK_CUSTOM, and bNodeSocket::type.
Referenced by node_group_input_update(), and node_group_output_update().
Definition at line 236 of file node_common.cc.
References data, node, and NODE_FRAME_SHRINK.
Referenced by register_node_type_frame().
bNodeSocket* node_group_find_input_socket | ( | bNode * | groupnode, |
const char * | identifier | ||
) |
Definition at line 56 of file node_common.cc.
References find_matching_socket(), and bNode::inputs.
Referenced by blender::ed::space_node::node_group_make_insert_selected(), and blender::ed::space_node::node_group_ungroup().
bNodeSocket* node_group_find_output_socket | ( | bNode * | groupnode, |
const char * | identifier | ||
) |
Definition at line 61 of file node_common.cc.
References find_matching_socket(), and bNode::outputs.
Referenced by blender::ed::space_node::node_group_make_insert_selected(), and blender::ed::space_node::node_group_ungroup().
bNodeSocket* node_group_input_find_socket | ( | bNode * | node, |
const char * | identifier | ||
) |
Definition at line 444 of file node_common.cc.
References bNodeSocket::identifier, bNodeSocket::next, node, and STREQ.
Referenced by do_versions_after_linking_260(), node_group_input_update(), and blender::ed::space_node::node_group_make_insert_selected().
Definition at line 439 of file node_common.cc.
References node, node_group_input_update(), and ntree.
Referenced by register_node_type_group_input().
Definition at line 455 of file node_common.cc.
References BLI_addtail(), BLI_freelistN(), BLI_listbase_clear(), ListBase::first, bNodeSocket::flag, bNodeLink::fromsock, group_verify_socket_list(), bNodeSocket::identifier, bNodeTree::inputs, is_group_extension_socket(), bNodeTree::links, bNodeLink::multi_input_socket_index, bNodeLink::next, node, node_group_input_find_socket(), nodeAddLink(), nodeLinkIsHidden(), nodeRemLink(), ntree, ntreeAddSocketInterfaceFromSocket(), SOCK_MULTI_INPUT, SOCK_OUT, bNodeLink::tonode, and bNodeLink::tosock.
Referenced by node_group_input_init(), blender::ed::space_node::node_group_make_insert_selected(), and register_node_type_group_input().
void node_group_label | ( | const bNodeTree * | UNUSEDntree, |
const bNode * | node, | ||
char * | label, | ||
int | maxlen | ||
) |
Definition at line 66 of file node_common.cc.
References BLI_strncpy(), IFACE_, label, and node.
Referenced by register_node_type_cmp_group(), register_node_type_geo_group(), register_node_type_sh_group(), and register_node_type_tex_group().
bNodeSocket* node_group_output_find_socket | ( | bNode * | node, |
const char * | identifier | ||
) |
Definition at line 536 of file node_common.cc.
References bNodeSocket::identifier, bNodeSocket::next, node, and STREQ.
Referenced by do_versions_after_linking_260(), blender::ed::space_node::node_group_make_insert_selected(), and node_group_output_update().
Definition at line 531 of file node_common.cc.
References node, node_group_output_update(), and ntree.
Referenced by register_node_type_group_output().
Definition at line 547 of file node_common.cc.
References BLI_addtail(), BLI_freelistN(), BLI_listbase_clear(), ListBase::first, bNodeLink::fromnode, bNodeLink::fromsock, group_verify_socket_list(), bNodeSocket::identifier, is_group_extension_socket(), bNodeTree::links, bNodeLink::next, node, node_group_output_find_socket(), nodeAddLink(), nodeLinkIsHidden(), nodeRemLink(), ntree, ntreeAddSocketInterfaceFromSocket(), bNodeTree::outputs, SOCK_IN, and bNodeLink::tosock.
Referenced by blender::ed::space_node::node_group_make_insert_selected(), node_group_output_init(), and register_node_type_group_output().
Definition at line 71 of file node_common.cc.
References if(), node, and nodeGroupPoll().
Referenced by register_node_type_cmp_group(), register_node_type_geo_group(), register_node_type_sh_group(), and register_node_type_tex_group().
Make sure all group node in ntree, which use ngroup, are sync'd.
Definition at line 213 of file node_common.cc.
References group_verify_socket_list(), ID_IS_LINKED, bNodeTree::inputs, LIB_TAG_MISSING, node, nodeRemoveAllSockets(), ntree, bNodeTree::outputs, SOCK_IN, and SOCK_OUT.
Referenced by blender::ed::space_node::node_group_make_insert_selected(), register_node_type_cmp_group(), register_node_type_geo_group(), register_node_type_sh_group(), and register_node_type_tex_group().
Definition at line 379 of file node_common.cc.
References ListBase::first, bNodeLink::fromnode, bNodeTree::links, bNodeLink::next, node, NODE_CLASS_OUTPUT, NODE_DO_OUTPUT, ntree, and bNodeLink::tonode.
Referenced by BKE_node_is_connected_to_output().
Definition at line 267 of file node_common.cc.
References node, nodeAddStaticSocket(), ntree, PROP_NONE, SOCK_IN, SOCK_OUT, and SOCK_RGBA.
Referenced by register_node_type_reroute().
Definition at line 85 of file node_common.cc.
References LISTBASE_FOREACH, node, bNodeTree::nodes, and TIP_.
Referenced by blender::ed::space_node::node_add_group_get_and_poll_group_node_tree(), node_group_poll_instance(), and blender::ed::space_node::ui_node_link_items().
Global update function for Reroute node types. This depends on connected nodes, so must be done as a tree-wide update.
Definition at line 321 of file node_common.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::MultiValueMap< Key, Value >::add(), ListBase::first, bNodeSocketType::idname, bNode::inputs, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), bNodeTree::links, LISTBASE_FOREACH, NODE_REROUTE, nodeModifySocketType(), ntree, bNode::outputs, propagate_reroute_type_from_start_socket(), and bNodeSocket::typeinfo.
Referenced by geometry_node_tree_update(), and update().
|
static |
Definition at line 288 of file node_common.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), BLI_assert, ListBase::first, bNode::inputs, blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), blender::MultiValueMap< Key, Value >::lookup(), NODE_REROUTE, bNode::outputs, blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), blender::Stack< T, InlineBufferCapacity, Allocator >::push(), bNode::type, and bNodeSocket::typeinfo.
Referenced by ntree_update_reroute_nodes().
Definition at line 246 of file node_common.cc.
References bNodeType::flag, bNodeType::free_self, MEM_freeN, NODE_BACKGROUND, NODE_CLASS_LAYOUT, node_copy_standard_storage(), NODE_FRAME, node_frame_init(), node_free_standard_storage(), node_type_base(), node_type_init(), node_type_size(), node_type_storage(), nodeRegisterType(), and void.
Referenced by BKE_node_system_init().
Definition at line 517 of file node_common.cc.
References bNodeType::free_self, MEM_freeN, NODE_CLASS_INTERFACE, NODE_GROUP_INPUT, node_group_input_init(), node_group_input_update(), node_type_base(), node_type_init(), node_type_size(), node_type_update(), nodeRegisterType(), and void.
Referenced by BKE_node_system_init().
Definition at line 607 of file node_common.cc.
References bNodeType::free_self, MEM_freeN, bNodeType::no_muting, NODE_CLASS_INTERFACE, NODE_GROUP_OUTPUT, node_group_output_init(), node_group_output_update(), node_type_base(), node_type_init(), node_type_size(), node_type_update(), nodeRegisterType(), and void.
Referenced by BKE_node_system_init().
Definition at line 276 of file node_common.cc.
References bNodeType::free_self, MEM_freeN, NODE_CLASS_LAYOUT, NODE_REROUTE, node_reroute_init(), node_type_base(), node_type_init(), nodeRegisterType(), and void.
Referenced by BKE_node_system_init().
|
static |
Definition at line 129 of file node_common.cc.
References bNodeSocket::flag, bNodeSocket::idname, bNodeSocketType::interface_verify_socket, mask(), bNodeSocket::name, node, nodeModifySocketType(), SOCK_HIDE_VALUE, and bNodeSocket::typeinfo.
Referenced by group_verify_socket_list().