Blender  V2.93
Classes | Macros | Functions | Variables
node.cc File Reference
#include "CLG_log.h"
#include "MEM_guardedalloc.h"
#include <climits>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include "DNA_action_types.h"
#include "DNA_anim_types.h"
#include "DNA_collection_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_light_types.h"
#include "DNA_linestyle_types.h"
#include "DNA_material_types.h"
#include "DNA_modifier_types.h"
#include "DNA_node_types.h"
#include "DNA_scene_types.h"
#include "DNA_simulation_types.h"
#include "DNA_texture_types.h"
#include "DNA_world_types.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_map.hh"
#include "BLI_math.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
#include "BLI_string_utils.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_anim_data.h"
#include "BKE_animsys.h"
#include "BKE_colortools.h"
#include "BKE_cryptomatte.h"
#include "BKE_global.h"
#include "BKE_idprop.h"
#include "BKE_idtype.h"
#include "BKE_lib_id.h"
#include "BKE_lib_query.h"
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_node_ui_storage.hh"
#include "BLI_threads.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "NOD_common.h"
#include "NOD_composite.h"
#include "NOD_function.h"
#include "NOD_geometry.h"
#include "NOD_shader.h"
#include "NOD_socket.h"
#include "NOD_texture.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "BLO_read_write.h"
#include "MOD_nodes.h"
#include "NOD_static_types.h"

Go to the source code of this file.

Classes

struct  bNodeClipboardExtraInfo
 
struct  bNodeClipboard
 
struct  SocketTemplateIdentifierCallbackData
 

Macros

#define DNA_DEPRECATED_ALLOW
 
#define NODE_DEFAULT_MAX_WIDTH   700
 
#define USE_NODE_CB_VALIDATE
 
#define DefNode(Category, ID, DefFunc, EnumName, StructName, UIName, UIDesc)
 

Functions

static void ntree_set_typeinfo (bNodeTree *ntree, bNodeTreeType *typeinfo)
 
static void node_socket_copy (bNodeSocket *sock_dst, const bNodeSocket *sock_src, const int flag)
 
static void free_localized_node_groups (bNodeTree *ntree)
 
static void node_free_node (bNodeTree *ntree, bNode *node)
 
static void node_socket_interface_free (bNodeTree *UNUSED(ntree), bNodeSocket *sock, const bool do_id_user)
 
static void nodeMuteRerouteOutputLinks (struct bNodeTree *ntree, struct bNode *node, const bool mute)
 
static void ntree_init_data (ID *id)
 
static void ntree_copy_data (Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int flag)
 
static void ntree_free_data (ID *id)
 
static void library_foreach_node_socket (LibraryForeachIDData *data, bNodeSocket *sock)
 
static void node_foreach_id (ID *id, LibraryForeachIDData *data)
 
static void node_foreach_cache (ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data)
 
static IDnode_owner_get (Main *bmain, ID *id)
 
static void write_node_socket_default_value (BlendWriter *writer, bNodeSocket *sock)
 
static void write_node_socket (BlendWriter *writer, bNodeSocket *sock)
 
static void write_node_socket_interface (BlendWriter *writer, bNodeSocket *sock)
 
void ntreeBlendWrite (BlendWriter *writer, bNodeTree *ntree)
 
static void ntree_blend_write (BlendWriter *writer, ID *id, const void *id_address)
 
static void direct_link_node_socket (BlendDataReader *reader, bNodeSocket *sock)
 
void ntreeBlendReadData (BlendDataReader *reader, bNodeTree *ntree)
 
static void ntree_blend_read_data (BlendDataReader *reader, ID *id)
 
static void lib_link_node_socket (BlendLibReader *reader, Library *lib, bNodeSocket *sock)
 
static void lib_link_node_sockets (BlendLibReader *reader, Library *lib, ListBase *sockets)
 
void ntreeBlendReadLib (struct BlendLibReader *reader, struct bNodeTree *ntree)
 
static void ntree_blend_read_lib (BlendLibReader *reader, ID *id)
 
static void expand_node_socket (BlendExpander *expander, bNodeSocket *sock)
 
static void expand_node_sockets (BlendExpander *expander, ListBase *sockets)
 
void ntreeBlendReadExpand (BlendExpander *expander, bNodeTree *ntree)
 
static void ntree_blend_read_expand (BlendExpander *expander, ID *id)
 
static void node_add_sockets_from_type (bNodeTree *ntree, bNode *node, bNodeType *ntype)
 
static void node_init (const struct bContext *C, bNodeTree *ntree, bNode *node)
 
static void node_set_typeinfo (const struct bContext *C, bNodeTree *ntree, bNode *node, bNodeType *typeinfo)
 
static void node_socket_set_typeinfo (bNodeTree *ntree, bNodeSocket *sock, bNodeSocketType *typeinfo)
 
static void update_typeinfo (Main *bmain, const struct bContext *C, bNodeTreeType *treetype, bNodeType *nodetype, bNodeSocketType *socktype, bool unregister)
 
void ntreeSetTypes (const struct bContext *C, bNodeTree *ntree)
 
bNodeTreeTypentreeTypeFind (const char *idname)
 
void ntreeTypeAdd (bNodeTreeType *nt)
 
static void ntree_free_type (void *treetype_v)
 
void ntreeTypeFreeLink (const bNodeTreeType *nt)
 
bool ntreeIsRegistered (bNodeTree *ntree)
 
GHashIteratorntreeTypeGetIterator (void)
 
bNodeTypenodeTypeFind (const char *idname)
 
static void free_dynamic_typeinfo (bNodeType *ntype)
 
static void node_free_type (void *nodetype_v)
 
void nodeRegisterType (bNodeType *nt)
 
void nodeUnregisterType (bNodeType *nt)
 
bool nodeTypeUndefined (bNode *node)
 
GHashIteratornodeTypeGetIterator (void)
 
bNodeSocketTypenodeSocketTypeFind (const char *idname)
 
static void node_free_socket_type (void *socktype_v)
 
void nodeRegisterSocketType (bNodeSocketType *st)
 
void nodeUnregisterSocketType (bNodeSocketType *st)
 
bool nodeSocketIsRegistered (bNodeSocket *sock)
 
GHashIteratornodeSocketTypeGetIterator (void)
 
struct bNodeSocketnodeFindSocket (const bNode *node, eNodeSocketInOut in_out, const char *identifier)
 
static bool unique_identifier_check (void *arg, const char *identifier)
 
static bNodeSocketmake_socket (bNodeTree *ntree, bNode *UNUSED(node), int in_out, ListBase *lb, const char *idname, const char *identifier, const char *name)
 
static void socket_id_user_increment (bNodeSocket *sock)
 
static void socket_id_user_decrement (bNodeSocket *sock)
 
void nodeModifySocketType (bNodeTree *ntree, bNode *UNUSED(node), bNodeSocket *sock, int type, int subtype)
 
bNodeSocketnodeAddSocket (bNodeTree *ntree, bNode *node, eNodeSocketInOut in_out, const char *idname, const char *identifier, const char *name)
 
bNodeSocketnodeInsertSocket (bNodeTree *ntree, bNode *node, eNodeSocketInOut in_out, const char *idname, bNodeSocket *next_sock, const char *identifier, const char *name)
 
const char * nodeStaticSocketType (int type, int subtype)
 
const char * nodeStaticSocketInterfaceType (int type, int subtype)
 
bNodeSocketnodeAddStaticSocket (bNodeTree *ntree, bNode *node, eNodeSocketInOut in_out, int type, int subtype, const char *identifier, const char *name)
 
bNodeSocketnodeInsertStaticSocket (bNodeTree *ntree, bNode *node, eNodeSocketInOut in_out, int type, int subtype, bNodeSocket *next_sock, const char *identifier, const char *name)
 
static void node_socket_free (bNodeTree *UNUSED(ntree), bNodeSocket *sock, bNode *UNUSED(node), const bool do_id_user)
 
void nodeRemoveSocket (bNodeTree *ntree, bNode *node, bNodeSocket *sock)
 
void nodeRemoveAllSockets (bNodeTree *ntree, bNode *node)
 
bNodenodeFindNodebyName (bNodeTree *ntree, const char *name)
 
bool nodeFindNode (bNodeTree *ntree, bNodeSocket *sock, bNode **r_node, int *r_sockindex)
 
bNodenodeFindRootParent (bNode *node)
 
bool nodeIsChildOf (const bNode *parent, const bNode *child)
 
void nodeChainIter (const bNodeTree *ntree, const bNode *node_start, bool(*callback)(bNode *, bNode *, void *, const bool), void *userdata, const bool reversed)
 
static void iter_backwards_ex (const bNodeTree *ntree, const bNode *node_start, bool(*callback)(bNode *, bNode *, void *), void *userdata, char recursion_mask)
 
void nodeChainIterBackwards (const bNodeTree *ntree, const bNode *node_start, bool(*callback)(bNode *, bNode *, void *), void *userdata, int recursion_lvl)
 
void nodeParentsIter (bNode *node, bool(*callback)(bNode *, void *), void *userdata)
 
void nodeUniqueName (bNodeTree *ntree, bNode *node)
 
bNodenodeAddNode (const struct bContext *C, bNodeTree *ntree, const char *idname)
 
bNodenodeAddStaticNode (const struct bContext *C, bNodeTree *ntree, int type)
 
bNodeBKE_node_copy_ex (bNodeTree *ntree, const bNode *node_src, const int flag, const bool unique_name)
 
static void node_set_new_pointers (bNode *node_src, bNode *new_node)
 
bNodeBKE_node_copy_store_new_pointers (bNodeTree *ntree, bNode *node_src, const int flag)
 
bNodeTreentreeCopyTree_ex_new_pointers (const bNodeTree *ntree, Main *bmain, const bool do_id_user)
 
static int node_count_links (const bNodeTree *ntree, const bNodeSocket *socket)
 
bNodeLinknodeAddLink (bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock, bNode *tonode, bNodeSocket *tosock)
 
void nodeRemLink (bNodeTree *ntree, bNodeLink *link)
 
static bool nodeMuteFromSocketLinks (const bNodeTree *ntree, const bNodeSocket *sock)
 
static void nodeMuteLink (bNodeLink *link)
 
static void nodeUnMuteLink (bNodeLink *link)
 
static void nodeMuteRerouteInputLinks (bNodeTree *ntree, bNode *node, const bool mute)
 
void nodeMuteLinkToggle (bNodeTree *ntree, bNodeLink *link)
 
void nodeRemSocketLinks (bNodeTree *ntree, bNodeSocket *sock)
 
bool nodeLinkIsHidden (const bNodeLink *link)
 
void nodeInternalRelink (bNodeTree *ntree, bNode *node)
 
void nodeToView (const bNode *node, float x, float y, float *rx, float *ry)
 
void nodeFromView (const bNode *node, float x, float y, float *rx, float *ry)
 
bool nodeAttachNodeCheck (const bNode *node, const bNode *parent)
 
void nodeAttachNode (bNode *node, bNode *parent)
 
void nodeDetachNode (struct bNode *node)
 
void nodePositionRelative (bNode *from_node, bNode *to_node, bNodeSocket *from_sock, bNodeSocket *to_sock)
 
void nodePositionPropagate (bNode *node)
 
bNodeTreentreeAddTree (Main *bmain, const char *name, const char *idname)
 
bNodeTreentreeCopyTree_ex (const bNodeTree *ntree, Main *bmain, const bool do_id_user)
 
bNodeTreentreeCopyTree (Main *bmain, const bNodeTree *ntree)
 
bool BKE_node_preview_used (const bNode *node)
 
bNodePreviewBKE_node_preview_verify (bNodeInstanceHash *previews, bNodeInstanceKey key, int xsize, int ysize, bool create)
 
bNodePreviewBKE_node_preview_copy (bNodePreview *preview)
 
void BKE_node_preview_free (bNodePreview *preview)
 
static void node_preview_init_tree_recursive (bNodeInstanceHash *previews, bNodeTree *ntree, bNodeInstanceKey parent_key, int xsize, int ysize, bool create_previews)
 
void BKE_node_preview_init_tree (bNodeTree *ntree, int xsize, int ysize, bool create_previews)
 
static void node_preview_tag_used_recursive (bNodeInstanceHash *previews, bNodeTree *ntree, bNodeInstanceKey parent_key)
 
void BKE_node_preview_remove_unused (bNodeTree *ntree)
 
void BKE_node_preview_free_tree (bNodeTree *ntree)
 
void BKE_node_preview_clear (bNodePreview *preview)
 
void BKE_node_preview_clear_tree (bNodeTree *ntree)
 
static void node_preview_sync (bNodePreview *to, bNodePreview *from)
 
void BKE_node_preview_sync_tree (bNodeTree *to_ntree, bNodeTree *from_ntree)
 
void BKE_node_preview_merge_tree (bNodeTree *to_ntree, bNodeTree *from_ntree, bool remove_old)
 
void BKE_node_preview_set_pixel (bNodePreview *preview, const float col[4], int x, int y, bool do_manage)
 
void nodeUnlinkNode (bNodeTree *ntree, bNode *node)
 
static void node_unlink_attached (bNodeTree *ntree, bNode *parent)
 
void ntreeFreeLocalNode (bNodeTree *ntree, bNode *node)
 
void nodeRemoveNode (Main *bmain, bNodeTree *ntree, bNode *node, bool do_id_user)
 
void ntreeFreeTree (bNodeTree *ntree)
 
void ntreeFreeEmbeddedTree (bNodeTree *ntree)
 
void ntreeFreeLocalTree (bNodeTree *ntree)
 
void ntreeFreeCache (bNodeTree *ntree)
 
void ntreeSetOutput (bNodeTree *ntree)
 
bNodeTree ** BKE_ntree_ptr_from_id (ID *id)
 
bNodeTreentreeFromID (ID *id)
 
bool ntreeNodeExists (const bNodeTree *ntree, const bNode *testnode)
 
bool ntreeOutputExists (const bNode *node, const bNodeSocket *testsock)
 
void ntreeNodeFlagSet (const bNodeTree *ntree, const int flag, const bool enable)
 
bNodeTreentreeLocalize (bNodeTree *ntree)
 
void ntreeLocalSync (bNodeTree *localtree, bNodeTree *ntree)
 
void ntreeLocalMerge (Main *bmain, bNodeTree *localtree, bNodeTree *ntree)
 
static bNodeSocketmake_socket_interface (bNodeTree *ntree, eNodeSocketInOut in_out, const char *idname, const char *name)
 
bNodeSocketntreeFindSocketInterface (bNodeTree *ntree, eNodeSocketInOut in_out, const char *identifier)
 
bNodeSocketntreeAddSocketInterface (bNodeTree *ntree, eNodeSocketInOut in_out, const char *idname, const char *name)
 
bNodeSocketntreeInsertSocketInterface (bNodeTree *ntree, eNodeSocketInOut in_out, const char *idname, bNodeSocket *next_sock, const char *name)
 
struct bNodeSocketntreeAddSocketInterfaceFromSocket (bNodeTree *ntree, bNode *from_node, bNodeSocket *from_sock)
 
struct bNodeSocketntreeInsertSocketInterfaceFromSocket (bNodeTree *ntree, bNodeSocket *next_sock, bNode *from_node, bNodeSocket *from_sock)
 
void ntreeRemoveSocketInterface (bNodeTree *ntree, bNodeSocket *sock)
 
static void ntree_interface_identifier_base (bNodeTree *ntree, char *base)
 
static bool ntree_interface_unique_identifier_check (void *UNUSED(data), const char *identifier)
 
static void ntree_interface_identifier (bNodeTree *ntree, const char *base, char *identifier, int maxlen, char *name, char *description)
 
static void ntree_interface_type_create (bNodeTree *ntree)
 
StructRNAntreeInterfaceTypeGet (bNodeTree *ntree, bool create)
 
void ntreeInterfaceTypeFree (bNodeTree *ntree)
 
void ntreeInterfaceTypeUpdate (bNodeTree *ntree)
 
bNodentreeFindType (const bNodeTree *ntree, int type)
 
bool ntreeHasType (const bNodeTree *ntree, int type)
 
bool ntreeHasTree (const bNodeTree *ntree, const bNodeTree *lookup)
 
bNodeLinknodeFindLink (bNodeTree *ntree, const bNodeSocket *from, const bNodeSocket *to)
 
int nodeCountSocketLinks (const bNodeTree *ntree, const bNodeSocket *sock)
 
bNodenodeGetActive (bNodeTree *ntree)
 
static bNodenode_get_active_id_recursive (bNodeInstanceKey active_key, bNodeInstanceKey parent_key, bNodeTree *ntree, short idtype)
 
bNodenodeGetActiveID (bNodeTree *ntree, short idtype)
 
bool nodeSetActiveID (bNodeTree *ntree, short idtype, ID *id)
 
void nodeClearActiveID (bNodeTree *ntree, short idtype)
 
void nodeSetSelected (bNode *node, bool select)
 
void nodeClearActive (bNodeTree *ntree)
 
void nodeSetActive (bNodeTree *ntree, bNode *node)
 
int nodeSocketIsHidden (const bNodeSocket *sock)
 
void nodeSetSocketAvailability (bNodeSocket *sock, bool is_available)
 
int nodeSocketLinkLimit (const bNodeSocket *sock)
 
void BKE_node_clipboard_init (const struct bNodeTree *ntree)
 
void BKE_node_clipboard_clear (void)
 
bool BKE_node_clipboard_validate (void)
 
void BKE_node_clipboard_add_node (bNode *node)
 
void BKE_node_clipboard_add_link (bNodeLink *link)
 
const ListBaseBKE_node_clipboard_get_nodes (void)
 
const ListBaseBKE_node_clipboard_get_links (void)
 
int BKE_node_clipboard_get_type (void)
 
void BKE_node_clipboard_free (void)
 
static bNodeInstanceKey node_hash_int_str (bNodeInstanceKey hash, const char *str)
 
bNodeInstanceKey BKE_node_instance_key (bNodeInstanceKey parent_key, const bNodeTree *ntree, const bNode *node)
 
static unsigned int node_instance_hash_key (const void *key)
 
static bool node_instance_hash_key_cmp (const void *a, const void *b)
 
bNodeInstanceHashBKE_node_instance_hash_new (const char *info)
 
void BKE_node_instance_hash_free (bNodeInstanceHash *hash, bNodeInstanceValueFP valfreefp)
 
void BKE_node_instance_hash_insert (bNodeInstanceHash *hash, bNodeInstanceKey key, void *value)
 
void * BKE_node_instance_hash_lookup (bNodeInstanceHash *hash, bNodeInstanceKey key)
 
int BKE_node_instance_hash_remove (bNodeInstanceHash *hash, bNodeInstanceKey key, bNodeInstanceValueFP valfreefp)
 
void BKE_node_instance_hash_clear (bNodeInstanceHash *hash, bNodeInstanceValueFP valfreefp)
 
void * BKE_node_instance_hash_pop (bNodeInstanceHash *hash, bNodeInstanceKey key)
 
int BKE_node_instance_hash_haskey (bNodeInstanceHash *hash, bNodeInstanceKey key)
 
int BKE_node_instance_hash_size (bNodeInstanceHash *hash)
 
void BKE_node_instance_hash_clear_tags (bNodeInstanceHash *hash)
 
void BKE_node_instance_hash_tag (bNodeInstanceHash *UNUSED(hash), void *value)
 
bool BKE_node_instance_hash_tag_key (bNodeInstanceHash *hash, bNodeInstanceKey key)
 
void BKE_node_instance_hash_remove_untagged (bNodeInstanceHash *hash, bNodeInstanceValueFP valfreefp)
 
static int node_get_deplist_recurs (bNodeTree *ntree, bNode *node, bNode ***nsort)
 
void ntreeGetDependencyList (struct bNodeTree *ntree, struct bNode ***r_deplist, int *r_deplist_len)
 
static void ntree_update_node_level (bNodeTree *ntree)
 
void ntreeTagUsedSockets (bNodeTree *ntree)
 
static void ntree_update_link_pointers (bNodeTree *ntree)
 
static void ntree_validate_links (bNodeTree *ntree)
 
void ntreeUpdateAllNew (Main *main)
 
void ntreeUpdateAllUsers (Main *main, ID *id)
 
void ntreeUpdateTree (Main *bmain, bNodeTree *ntree)
 
void nodeUpdate (bNodeTree *ntree, bNode *node)
 
bool nodeUpdateID (bNodeTree *ntree, ID *id)
 
void nodeUpdateInternalLinks (bNodeTree *ntree, bNode *node)
 
void nodeLabel (bNodeTree *ntree, bNode *node, char *label, int maxlen)
 
const char * nodeSocketLabel (const bNodeSocket *sock)
 
static void node_type_base_defaults (bNodeType *ntype)
 
static bool node_poll_default (bNodeType *UNUSED(ntype), bNodeTree *UNUSED(ntree), const char **UNUSED(disabled_hint))
 
static bool node_poll_instance_default (bNode *node, bNodeTree *ntree, const char **disabled_hint)
 
void node_type_base (bNodeType *ntype, int type, const char *name, short nclass, short flag)
 
void node_type_base_custom (bNodeType *ntype, const char *idname, const char *name, short nclass, short flag)
 
static bool unique_socket_template_identifier_check (void *arg, const char *name)
 
static void unique_socket_template_identifier (bNodeSocketTemplate *list, bNodeSocketTemplate *ntemp, const char defname[], char delim)
 
void node_type_socket_templates (struct bNodeType *ntype, struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs)
 
void node_type_init (struct bNodeType *ntype, void(*initfunc)(struct bNodeTree *ntree, struct bNode *node))
 
void node_type_size (struct bNodeType *ntype, int width, int minwidth, int maxwidth)
 
void node_type_size_preset (struct bNodeType *ntype, eNodeSizePreset size)
 
void node_type_storage (bNodeType *ntype, const char *storagename, void(*freefunc)(struct bNode *node), void(*copyfunc)(struct bNodeTree *dest_ntree, struct bNode *dest_node, const struct bNode *src_node))
 
void node_type_label (struct bNodeType *ntype, void(*labelfunc)(struct bNodeTree *ntree, struct bNode *node, char *label, int maxlen))
 
void node_type_update (struct bNodeType *ntype, void(*updatefunc)(struct bNodeTree *ntree, struct bNode *node))
 
void node_type_group_update (struct bNodeType *ntype, void(*group_update_func)(struct bNodeTree *ntree, struct bNode *node))
 
void node_type_exec (struct bNodeType *ntype, NodeInitExecFunction init_exec_fn, NodeFreeExecFunction free_exec_fn, NodeExecFunction exec_fn)
 
void node_type_gpu (struct bNodeType *ntype, NodeGPUExecFunction gpu_fn)
 
void node_type_internal_links (bNodeType *ntype, void(*update_internal_links)(bNodeTree *, bNode *))
 
static bool node_undefined_poll (bNodeType *UNUSED(ntype), bNodeTree *UNUSED(nodetree), const char **UNUSED(r_disabled_hint))
 
static void register_undefined_types ()
 
static void registerCompositNodes ()
 
static void registerShaderNodes ()
 
static void registerTextureNodes ()
 
static void registerGeometryNodes ()
 
static void registerFunctionNodes ()
 
void BKE_node_system_init (void)
 
void BKE_node_system_exit (void)
 
void BKE_node_tree_iter_init (struct NodeTreeIterStore *ntreeiter, struct Main *bmain)
 
bool BKE_node_tree_iter_step (struct NodeTreeIterStore *ntreeiter, bNodeTree **r_nodetree, struct ID **r_id)
 
void BKE_nodetree_remove_layer_n (bNodeTree *ntree, Scene *scene, const int layer_index)
 

Variables

static bNodeTreeType NodeTreeTypeUndefined
 
bNodeType NodeTypeUndefined
 
bNodeSocketType NodeSocketTypeUndefined
 
static CLG_LogRef LOG = {"bke.node"}
 
IDTypeInfo IDType_ID_NT
 
static GHashnodetreetypes_hash = nullptr
 
static GHashnodetypes_hash = nullptr
 
static GHashnodesockettypes_hash = nullptr
 
static bNodeClipboard node_clipboard = {{nullptr}}
 
const bNodeInstanceKey NODE_INSTANCE_KEY_BASE = {5381}
 
const bNodeInstanceKey NODE_INSTANCE_KEY_NONE = {0}
 

Macro Definition Documentation

◆ DefNode

#define DefNode (   Category,
  ID,
  DefFunc,
  EnumName,
  StructName,
  UIName,
  UIDesc 
)
Value:
case ID: \
BLI_strncpy(ntype->idname, #Category #StructName, sizeof(ntype->idname)); \
ntype->rna_ext.srna = RNA_struct_find(#Category #StructName); \
BLI_assert(ntype->rna_ext.srna != nullptr); \
RNA_struct_blender_type_set(ntype->rna_ext.srna, ntype); \
break;
struct ID ID
StructRNA * RNA_struct_find(const char *identifier)
Definition: rna_access.c:718

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 34 of file node.cc.

◆ NODE_DEFAULT_MAX_WIDTH

#define NODE_DEFAULT_MAX_WIDTH   700

Definition at line 94 of file node.cc.

◆ USE_NODE_CB_VALIDATE

#define USE_NODE_CB_VALIDATE

Definition at line 3752 of file node.cc.

Function Documentation

◆ BKE_node_clipboard_add_link()

void BKE_node_clipboard_add_link ( bNodeLink link)

Definition at line 3879 of file node.cc.

References BLI_addtail(), bNodeClipboard::links, and node_clipboard.

Referenced by node_clipboard_copy_exec().

◆ BKE_node_clipboard_add_node()

void BKE_node_clipboard_add_node ( bNode node)

◆ BKE_node_clipboard_clear()

void BKE_node_clipboard_clear ( void  )

◆ BKE_node_clipboard_free()

void BKE_node_clipboard_free ( void  )

Definition at line 3899 of file node.cc.

References BKE_node_clipboard_clear(), and BKE_node_clipboard_validate().

Referenced by WM_exit_ex().

◆ BKE_node_clipboard_get_links()

const ListBase* BKE_node_clipboard_get_links ( void  )

Definition at line 3889 of file node.cc.

References bNodeClipboard::links, and node_clipboard.

Referenced by node_clipboard_paste_exec().

◆ BKE_node_clipboard_get_nodes()

const ListBase* BKE_node_clipboard_get_nodes ( void  )

Definition at line 3884 of file node.cc.

References node_clipboard, and bNodeClipboard::nodes.

Referenced by node_clipboard_paste_exec().

◆ BKE_node_clipboard_get_type()

int BKE_node_clipboard_get_type ( void  )

Definition at line 3894 of file node.cc.

References node_clipboard, and bNodeClipboard::type.

Referenced by node_clipboard_paste_exec().

◆ BKE_node_clipboard_init()

void BKE_node_clipboard_init ( const struct bNodeTree ntree)

Definition at line 3783 of file node.cc.

References node_clipboard, ntree, bNodeClipboard::type, and bNodeTree::type.

Referenced by node_clipboard_copy_exec().

◆ BKE_node_clipboard_validate()

bool BKE_node_clipboard_validate ( void  )

◆ BKE_node_copy_ex()

bNode* BKE_node_copy_ex ( bNodeTree ntree,
const bNode node_src,
const int  flag,
const bool  unique_name 
)

◆ BKE_node_copy_store_new_pointers()

bNode* BKE_node_copy_store_new_pointers ( bNodeTree ntree,
bNode node_src,
const int  flag 
)

◆ BKE_node_instance_hash_clear()

void BKE_node_instance_hash_clear ( bNodeInstanceHash hash,
bNodeInstanceValueFP  valfreefp 
)

Definition at line 3989 of file node.cc.

References BLI_ghash_clear(), and hash.

◆ BKE_node_instance_hash_clear_tags()

void BKE_node_instance_hash_clear_tags ( bNodeInstanceHash hash)

◆ BKE_node_instance_hash_free()

void BKE_node_instance_hash_free ( bNodeInstanceHash hash,
bNodeInstanceValueFP  valfreefp 
)

Definition at line 3963 of file node.cc.

References BLI_ghash_free(), hash, and MEM_freeN.

Referenced by BKE_node_preview_free_tree(), BKE_node_preview_merge_tree(), and ntree_free_data().

◆ BKE_node_instance_hash_haskey()

int BKE_node_instance_hash_haskey ( bNodeInstanceHash hash,
bNodeInstanceKey  key 
)

Definition at line 3999 of file node.cc.

References BLI_ghash_haskey(), and hash.

◆ BKE_node_instance_hash_insert()

void BKE_node_instance_hash_insert ( bNodeInstanceHash hash,
bNodeInstanceKey  key,
void *  value 
)

◆ BKE_node_instance_hash_lookup()

void* BKE_node_instance_hash_lookup ( bNodeInstanceHash hash,
bNodeInstanceKey  key 
)

◆ BKE_node_instance_hash_new()

bNodeInstanceHash* BKE_node_instance_hash_new ( const char *  info)

◆ BKE_node_instance_hash_pop()

void* BKE_node_instance_hash_pop ( bNodeInstanceHash hash,
bNodeInstanceKey  key 
)

Definition at line 3994 of file node.cc.

References BLI_ghash_popkey(), and hash.

◆ BKE_node_instance_hash_remove()

int BKE_node_instance_hash_remove ( bNodeInstanceHash hash,
bNodeInstanceKey  key,
bNodeInstanceValueFP  valfreefp 
)

Definition at line 3982 of file node.cc.

References BLI_ghash_remove(), and hash.

Referenced by BKE_node_instance_hash_remove_untagged(), and BKE_node_preview_merge_tree().

◆ BKE_node_instance_hash_remove_untagged()

void BKE_node_instance_hash_remove_untagged ( bNodeInstanceHash hash,
bNodeInstanceValueFP  valfreefp 
)

◆ BKE_node_instance_hash_size()

int BKE_node_instance_hash_size ( bNodeInstanceHash hash)

Definition at line 4004 of file node.cc.

References BLI_ghash_len(), and hash.

Referenced by BKE_node_instance_hash_remove_untagged().

◆ BKE_node_instance_hash_tag()

void BKE_node_instance_hash_tag ( bNodeInstanceHash UNUSEDhash,
void *  value 
)

Definition at line 4021 of file node.cc.

References bNodeInstanceHashEntry::tag.

◆ BKE_node_instance_hash_tag_key()

bool BKE_node_instance_hash_tag_key ( bNodeInstanceHash hash,
bNodeInstanceKey  key 
)

◆ BKE_node_instance_key()

bNodeInstanceKey BKE_node_instance_key ( bNodeInstanceKey  parent_key,
const bNodeTree ntree,
const bNode node 
)

◆ BKE_node_preview_clear()

void BKE_node_preview_clear ( bNodePreview preview)

Definition at line 2716 of file node.cc.

References MEM_allocN_len, and bNodePreview::rect.

Referenced by BKE_node_preview_clear_tree().

◆ BKE_node_preview_clear_tree()

void BKE_node_preview_clear_tree ( bNodeTree ntree)

◆ BKE_node_preview_copy()

bNodePreview* BKE_node_preview_copy ( bNodePreview preview)

Definition at line 2618 of file node.cc.

References MEM_dupallocN, and bNodePreview::rect.

Referenced by ntree_copy_data().

◆ BKE_node_preview_free()

void BKE_node_preview_free ( bNodePreview preview)

◆ BKE_node_preview_free_tree()

void BKE_node_preview_free_tree ( bNodeTree ntree)

◆ BKE_node_preview_init_tree()

void BKE_node_preview_init_tree ( bNodeTree ntree,
int  xsize,
int  ysize,
bool  create_previews 
)

◆ BKE_node_preview_merge_tree()

void BKE_node_preview_merge_tree ( bNodeTree to_ntree,
bNodeTree from_ntree,
bool  remove_old 
)

◆ BKE_node_preview_remove_unused()

void BKE_node_preview_remove_unused ( bNodeTree ntree)

◆ BKE_node_preview_set_pixel()

void BKE_node_preview_set_pixel ( bNodePreview preview,
const float  col[4],
int  x,
int  y,
bool  do_manage 
)

◆ BKE_node_preview_sync_tree()

void BKE_node_preview_sync_tree ( bNodeTree to_ntree,
bNodeTree from_ntree 
)

◆ BKE_node_preview_used()

bool BKE_node_preview_used ( const bNode node)

Definition at line 2574 of file node.cc.

References node, and NODE_PREVIEW.

Referenced by node_preview_init_tree_recursive(), and node_preview_tag_used_recursive().

◆ BKE_node_preview_verify()

bNodePreview* BKE_node_preview_verify ( bNodeInstanceHash previews,
bNodeInstanceKey  key,
int  xsize,
int  ysize,
bool  create 
)

◆ BKE_node_system_exit()

void BKE_node_system_exit ( void  )

◆ BKE_node_system_init()

void BKE_node_system_init ( void  )

◆ BKE_node_tree_iter_init()

void BKE_node_tree_iter_init ( struct NodeTreeIterStore ntreeiter,
struct Main bmain 
)

◆ BKE_node_tree_iter_step()

bool BKE_node_tree_iter_step ( struct NodeTreeIterStore ntreeiter,
bNodeTree **  r_nodetree,
struct ID **  r_id 
)

◆ BKE_nodetree_remove_layer_n()

void BKE_nodetree_remove_layer_n ( bNodeTree ntree,
Scene scene,
const int  layer_index 
)

◆ BKE_ntree_ptr_from_id()

bNodeTree** BKE_ntree_ptr_from_id ( ID id)

Get address of potential node-tree pointer of given ID.

Warning
Using this function directly is potentially dangerous, if you don't know or are not sure, please use ntreeFromID() instead.

Definition at line 3124 of file node.cc.

References GS, id, ID_LA, ID_LS, ID_MA, ID_SCE, ID_SIM, ID_TE, ID_WO, and ID::name.

Referenced by direct_link_id_embedded_id(), and ntreeFromID().

◆ direct_link_node_socket()

static void direct_link_node_socket ( BlendDataReader reader,
bNodeSocket sock 
)
static

◆ expand_node_socket()

static void expand_node_socket ( BlendExpander expander,
bNodeSocket sock 
)
static

◆ expand_node_sockets()

static void expand_node_sockets ( BlendExpander expander,
ListBase sockets 
)
static

Definition at line 907 of file node.cc.

References expand_node_socket(), and LISTBASE_FOREACH.

Referenced by ntreeBlendReadExpand().

◆ free_dynamic_typeinfo()

static void free_dynamic_typeinfo ( bNodeType ntype)
static

Definition at line 1266 of file node.cc.

References bNodeType::inputs, MEM_freeN, NODE_DYNAMIC, bNodeType::outputs, and bNodeType::type.

Referenced by node_free_type().

◆ free_localized_node_groups()

static void free_localized_node_groups ( bNodeTree ntree)
static

◆ iter_backwards_ex()

static void iter_backwards_ex ( const bNodeTree ntree,
const bNode node_start,
bool(*)(bNode *, bNode *, void *)  callback,
void *  userdata,
char  recursion_mask 
)
static

◆ lib_link_node_socket()

static void lib_link_node_socket ( BlendLibReader reader,
Library lib,
bNodeSocket sock 
)
static

◆ lib_link_node_sockets()

static void lib_link_node_sockets ( BlendLibReader reader,
Library lib,
ListBase sockets 
)
static

Definition at line 821 of file node.cc.

References lib, lib_link_node_socket(), and LISTBASE_FOREACH.

Referenced by ntreeBlendReadLib().

◆ library_foreach_node_socket()

static void library_foreach_node_socket ( LibraryForeachIDData data,
bNodeSocket sock 
)
static

◆ make_socket()

static bNodeSocket* make_socket ( bNodeTree ntree,
bNode UNUSEDnode,
int  in_out,
ListBase lb,
const char *  idname,
const char *  identifier,
const char *  name 
)
static

◆ make_socket_interface()

static bNodeSocket* make_socket_interface ( bNodeTree ntree,
eNodeSocketInOut  in_out,
const char *  idname,
const char *  name 
)
static

◆ node_add_sockets_from_type()

static void node_add_sockets_from_type ( bNodeTree ntree,
bNode node,
bNodeType ntype 
)
static

◆ node_count_links()

static int node_count_links ( const bNodeTree ntree,
const bNodeSocket socket 
)
static

◆ node_foreach_cache()

static void node_foreach_cache ( ID id,
IDTypeForeachCacheFunctionCallback  function_callback,
void *  user_data 
)
static

◆ node_foreach_id()

static void node_foreach_id ( ID id,
LibraryForeachIDData data 
)
static

◆ node_free_node()

static void node_free_node ( bNodeTree ntree,
bNode node 
)
static

◆ node_free_socket_type()

static void node_free_socket_type ( void *  socktype_v)
static

Definition at line 1341 of file node.cc.

References bNodeSocketType::free_self, G_MAIN, and update_typeinfo().

Referenced by BKE_node_system_exit(), and nodeUnregisterSocketType().

◆ node_free_type()

static void node_free_type ( void *  nodetype_v)
static

◆ node_get_active_id_recursive()

static bNode* node_get_active_id_recursive ( bNodeInstanceKey  active_key,
bNodeInstanceKey  parent_key,
bNodeTree ntree,
short  idtype 
)
static

◆ node_get_deplist_recurs()

static int node_get_deplist_recurs ( bNodeTree ntree,
bNode node,
bNode ***  nsort 
)
static

◆ node_hash_int_str()

static bNodeInstanceKey node_hash_int_str ( bNodeInstanceKey  hash,
const char *  str 
)
static

Definition at line 3915 of file node.cc.

References Freestyle::c, hash, and str.

Referenced by BKE_node_instance_key().

◆ node_init()

static void node_init ( const struct bContext C,
bNodeTree ntree,
bNode node 
)
static

◆ node_instance_hash_key()

static unsigned int node_instance_hash_key ( const void *  key)
static

Definition at line 3942 of file node.cc.

Referenced by BKE_node_instance_hash_new().

◆ node_instance_hash_key_cmp()

static bool node_instance_hash_key_cmp ( const void *  a,
const void *  b 
)
static

Definition at line 3947 of file node.cc.

References Freestyle::a.

Referenced by BKE_node_instance_hash_new().

◆ node_owner_get()

static ID* node_owner_get ( Main bmain,
ID id 
)
static

◆ node_poll_default()

static bool node_poll_default ( bNodeType UNUSEDntype,
bNodeTree UNUSEDntree,
const char **  UNUSEDdisabled_hint 
)
static

Definition at line 4429 of file node.cc.

Referenced by node_type_base().

◆ node_poll_instance_default()

static bool node_poll_instance_default ( bNode node,
bNodeTree ntree,
const char **  disabled_hint 
)
static

Definition at line 4437 of file node.cc.

References node, and ntree.

Referenced by node_type_base().

◆ node_preview_init_tree_recursive()

static void node_preview_init_tree_recursive ( bNodeInstanceHash previews,
bNodeTree ntree,
bNodeInstanceKey  parent_key,
int  xsize,
int  ysize,
bool  create_previews 
)
static

◆ node_preview_sync()

static void node_preview_sync ( bNodePreview to,
bNodePreview from 
)
static

◆ node_preview_tag_used_recursive()

static void node_preview_tag_used_recursive ( bNodeInstanceHash previews,
bNodeTree ntree,
bNodeInstanceKey  parent_key 
)
static

◆ node_set_new_pointers()

static void node_set_new_pointers ( bNode node_src,
bNode new_node 
)
static

◆ node_set_typeinfo()

static void node_set_typeinfo ( const struct bContext C,
bNodeTree ntree,
bNode node,
bNodeType typeinfo 
)
static

◆ node_socket_copy()

static void node_socket_copy ( bNodeSocket sock_dst,
const bNodeSocket sock_src,
const int  flag 
)
static

◆ node_socket_free()

static void node_socket_free ( bNodeTree UNUSEDntree,
bNodeSocket sock,
bNode UNUSEDnode,
const bool  do_id_user 
)
static

◆ node_socket_interface_free()

static void node_socket_interface_free ( bNodeTree UNUSEDntree,
bNodeSocket sock,
const bool  do_id_user 
)
static

◆ node_socket_set_typeinfo()

static void node_socket_set_typeinfo ( bNodeTree ntree,
bNodeSocket sock,
bNodeSocketType typeinfo 
)
static

◆ node_type_base()

void node_type_base ( bNodeType ntype,
int  type,
const char *  name,
short  nclass,
short  flag 
)

◆ node_type_base_custom()

void node_type_base_custom ( bNodeType ntype,
const char *  idname,
const char *  name,
short  nclass,
short  flag 
)

◆ node_type_base_defaults()

static void node_type_base_defaults ( bNodeType ntype)
static

◆ node_type_exec()

void node_type_exec ( struct bNodeType ntype,
NodeInitExecFunction  init_exec_fn,
NodeFreeExecFunction  free_exec_fn,
NodeExecFunction  exec_fn 
)

Definition at line 4635 of file node.cc.

References bNodeType::exec_fn, bNodeType::free_exec_fn, and bNodeType::init_exec_fn.

Referenced by register_node_type_sh_combhsv(), register_node_type_sh_combrgb(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_custom_group(), register_node_type_sh_fresnel(), register_node_type_sh_gamma(), register_node_type_sh_group(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_layer_weight(), register_node_type_sh_mix_rgb(), register_node_type_sh_normal(), register_node_type_sh_normal_map(), register_node_type_sh_particle_info(), register_node_type_sh_rgbtobw(), register_node_type_sh_sephsv(), register_node_type_sh_seprgb(), register_node_type_sh_squeeze(), register_node_type_sh_valtorgb(), register_node_type_sh_vect_transform(), register_node_type_tex_at(), register_node_type_tex_bricks(), register_node_type_tex_checker(), register_node_type_tex_compose(), register_node_type_tex_coord(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_decompose(), register_node_type_tex_distance(), register_node_type_tex_group(), register_node_type_tex_hue_sat(), register_node_type_tex_image(), register_node_type_tex_invert(), register_node_type_tex_math(), register_node_type_tex_mix_rgb(), register_node_type_tex_output(), register_node_type_tex_rgbtobw(), register_node_type_tex_rotate(), register_node_type_tex_scale(), register_node_type_tex_texture(), register_node_type_tex_translate(), register_node_type_tex_valtonor(), register_node_type_tex_valtorgb(), and register_node_type_tex_viewer().

◆ node_type_gpu()

void node_type_gpu ( struct bNodeType ntype,
NodeGPUExecFunction  gpu_fn 
)

Definition at line 4645 of file node.cc.

References bNodeType::gpu_fn.

Referenced by register_node_type_sh_add_shader(), register_node_type_sh_ambient_occlusion(), register_node_type_sh_attribute(), register_node_type_sh_background(), register_node_type_sh_bevel(), register_node_type_sh_blackbody(), register_node_type_sh_brightcontrast(), register_node_type_sh_bsdf_anisotropic(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_hair(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_toon(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_bsdf_velvet(), register_node_type_sh_bump(), register_node_type_sh_camera(), register_node_type_sh_clamp(), register_node_type_sh_combhsv(), register_node_type_sh_combrgb(), register_node_type_sh_combxyz(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_custom_group(), register_node_type_sh_displacement(), register_node_type_sh_eevee_specular(), register_node_type_sh_emission(), register_node_type_sh_fresnel(), register_node_type_sh_gamma(), register_node_type_sh_geometry(), register_node_type_sh_group(), register_node_type_sh_hair_info(), register_node_type_sh_holdout(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_layer_weight(), register_node_type_sh_light_falloff(), register_node_type_sh_light_path(), register_node_type_sh_map_range(), register_node_type_sh_mapping(), register_node_type_sh_math(), register_node_type_sh_mix_rgb(), register_node_type_sh_mix_shader(), register_node_type_sh_normal(), register_node_type_sh_normal_map(), register_node_type_sh_object_info(), register_node_type_sh_output_aov(), register_node_type_sh_output_material(), register_node_type_sh_output_world(), register_node_type_sh_particle_info(), register_node_type_sh_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_sephsv(), register_node_type_sh_seprgb(), register_node_type_sh_sepxyz(), register_node_type_sh_shadertorgb(), register_node_type_sh_squeeze(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tangent(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_coord(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_image(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_tex_white_noise(), register_node_type_sh_uvmap(), register_node_type_sh_valtorgb(), register_node_type_sh_value(), register_node_type_sh_vect_math(), register_node_type_sh_vect_transform(), register_node_type_sh_vector_displacement(), register_node_type_sh_vector_rotate(), register_node_type_sh_vertex_color(), register_node_type_sh_volume_absorption(), register_node_type_sh_volume_info(), register_node_type_sh_volume_principled(), register_node_type_sh_volume_scatter(), and register_node_type_sh_wireframe().

◆ node_type_group_update()

void node_type_group_update ( struct bNodeType ntype,
void(*)(struct bNodeTree *ntree, struct bNode *node group_update_func 
)

◆ node_type_init()

void node_type_init ( struct bNodeType ntype,
void(*)(struct bNodeTree *ntree, struct bNode *node initfunc 
)

Definition at line 4559 of file node.cc.

References bNodeType::initfunc.

Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_antialiasing(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_bokehblur(), register_node_type_cmp_bokehimage(), register_node_type_cmp_boxmask(), register_node_type_cmp_brightcontrast(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_colorcorrection(), register_node_type_cmp_combycca(), register_node_type_cmp_crop(), register_node_type_cmp_cryptomatte(), register_node_type_cmp_cryptomatte_legacy(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_denoise(), register_node_type_cmp_despeckle(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_distance_matte(), register_node_type_cmp_ellipsemask(), register_node_type_cmp_glare(), register_node_type_cmp_huecorrect(), register_node_type_cmp_image(), register_node_type_cmp_invert(), register_node_type_cmp_keying(), register_node_type_cmp_keyingscreen(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_mask(), register_node_type_cmp_planetrackdeform(), register_node_type_cmp_rlayers(), register_node_type_cmp_rotate(), register_node_type_cmp_sepycca(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_sunbeams(), register_node_type_cmp_tonemap(), register_node_type_cmp_trackpos(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), register_node_type_fn_input_string(), register_node_type_fn_input_vector(), register_node_type_frame(), register_node_type_geo_align_rotation_to_vector(), register_node_type_geo_attribute_clamp(), register_node_type_geo_attribute_color_ramp(), register_node_type_geo_attribute_combine_xyz(), register_node_type_geo_attribute_compare(), register_node_type_geo_attribute_convert(), register_node_type_geo_attribute_fill(), register_node_type_geo_attribute_map_range(), register_node_type_geo_attribute_math(), register_node_type_geo_attribute_mix(), register_node_type_geo_attribute_proximity(), register_node_type_geo_attribute_randomize(), register_node_type_geo_attribute_separate_xyz(), register_node_type_geo_attribute_vector_math(), register_node_type_geo_boolean(), register_node_type_geo_collection_info(), register_node_type_geo_mesh_primitive_circle(), register_node_type_geo_mesh_primitive_cone(), register_node_type_geo_mesh_primitive_cylinder(), register_node_type_geo_mesh_primitive_line(), register_node_type_geo_object_info(), register_node_type_geo_point_instance(), register_node_type_geo_point_rotate(), register_node_type_geo_point_scale(), register_node_type_geo_point_translate(), register_node_type_geo_points_to_volume(), register_node_type_geo_triangulate(), register_node_type_geo_volume_to_mesh(), register_node_type_group_input(), register_node_type_group_output(), register_node_type_reroute(), register_node_type_sh_add_shader(), register_node_type_sh_ambient_occlusion(), register_node_type_sh_attribute(), register_node_type_sh_background(), register_node_type_sh_bevel(), register_node_type_sh_blackbody(), register_node_type_sh_brightcontrast(), register_node_type_sh_bsdf_anisotropic(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_hair(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_toon(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_bsdf_velvet(), register_node_type_sh_clamp(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_displacement(), register_node_type_sh_eevee_specular(), register_node_type_sh_emission(), register_node_type_sh_fresnel(), register_node_type_sh_gamma(), register_node_type_sh_geometry(), register_node_type_sh_hair_info(), register_node_type_sh_holdout(), register_node_type_sh_layer_weight(), register_node_type_sh_light_falloff(), register_node_type_sh_light_path(), register_node_type_sh_map_range(), register_node_type_sh_mix_shader(), register_node_type_sh_normal_map(), register_node_type_sh_output_aov(), register_node_type_sh_output_light(), register_node_type_sh_output_linestyle(), register_node_type_sh_output_material(), register_node_type_sh_output_world(), register_node_type_sh_script(), register_node_type_sh_shadertorgb(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tangent(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_coord(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_pointdensity(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_tex_white_noise(), register_node_type_sh_uvalongstroke(), register_node_type_sh_uvmap(), register_node_type_sh_valtorgb(), register_node_type_sh_vect_transform(), register_node_type_sh_vector_displacement(), register_node_type_sh_vertex_color(), register_node_type_sh_volume_absorption(), register_node_type_sh_volume_principled(), register_node_type_sh_volume_scatter(), register_node_type_sh_wavelength(), register_node_type_sh_wireframe(), register_node_type_tex_bricks(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_image(), register_node_type_tex_output(), and register_node_type_tex_valtorgb().

◆ node_type_internal_links()

void node_type_internal_links ( bNodeType ntype,
void(*)(bNodeTree *, bNode *)  update_internal_links 
)

Definition at line 4650 of file node.cc.

References bNodeType::update_internal_links.

◆ node_type_label()

void node_type_label ( struct bNodeType ntype,
void(*)(struct bNodeTree *ntree, struct bNode *node, char *label, int maxlen)  labelfunc 
)

Definition at line 4616 of file node.cc.

References bNodeType::labelfunc.

◆ node_type_size()

void node_type_size ( struct bNodeType ntype,
int  width,
int  minwidth,
int  maxwidth 
)

◆ node_type_size_preset()

void node_type_size_preset ( struct bNodeType ntype,
eNodeSizePreset  size 
)

Definition at line 4577 of file node.cc.

References NODE_DEFAULT_MAX_WIDTH, NODE_SIZE_DEFAULT, NODE_SIZE_LARGE, NODE_SIZE_MIDDLE, NODE_SIZE_SMALL, node_type_size(), and size().

Referenced by node_type_base_defaults(), register_node_type_cmp_rgb(), register_node_type_cmp_rgbtobw(), register_node_type_cmp_rlayers(), register_node_type_cmp_switch(), register_node_type_cmp_value(), register_node_type_geo_attribute_color_ramp(), register_node_type_geo_sample_texture(), register_node_type_sh_blackbody(), register_node_type_sh_bsdf_anisotropic(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_toon(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_hue_sat(), register_node_type_sh_light_falloff(), register_node_type_sh_normal_map(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tangent(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_image(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_wave(), register_node_type_sh_uvmap(), register_node_type_sh_valtorgb(), register_node_type_sh_volume_principled(), register_node_type_sh_wavelength(), register_node_type_tex_bricks(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_hue_sat(), register_node_type_tex_output(), and register_node_type_tex_valtorgb().

◆ node_type_socket_templates()

void node_type_socket_templates ( struct bNodeType ntype,
struct bNodeSocketTemplate inputs,
struct bNodeSocketTemplate outputs 
)

Definition at line 4527 of file node.cc.

References BLI_strncpy(), bNodeSocketTemplate::identifier, bNodeType::inputs, inputs, bNodeType::outputs, outputs, bNodeSocketTemplate::type, and unique_socket_template_identifier().

Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_antialiasing(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_bokehblur(), register_node_type_cmp_bokehimage(), register_node_type_cmp_boxmask(), register_node_type_cmp_brightcontrast(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_colorcorrection(), register_node_type_cmp_combhsva(), register_node_type_cmp_combrgba(), register_node_type_cmp_combycca(), register_node_type_cmp_combyuva(), register_node_type_cmp_composite(), register_node_type_cmp_cornerpin(), register_node_type_cmp_crop(), register_node_type_cmp_cryptomatte(), register_node_type_cmp_cryptomatte_legacy(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_denoise(), register_node_type_cmp_despeckle(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_displace(), register_node_type_cmp_distance_matte(), register_node_type_cmp_doubleedgemask(), register_node_type_cmp_ellipsemask(), register_node_type_cmp_exposure(), register_node_type_cmp_filter(), register_node_type_cmp_flip(), register_node_type_cmp_gamma(), register_node_type_cmp_glare(), register_node_type_cmp_group(), register_node_type_cmp_hue_sat(), register_node_type_cmp_huecorrect(), register_node_type_cmp_idmask(), register_node_type_cmp_inpaint(), register_node_type_cmp_invert(), register_node_type_cmp_keying(), register_node_type_cmp_keyingscreen(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_range(), register_node_type_cmp_map_value(), register_node_type_cmp_mapuv(), register_node_type_cmp_mask(), register_node_type_cmp_math(), register_node_type_cmp_mix_rgb(), register_node_type_cmp_movieclip(), register_node_type_cmp_moviedistortion(), register_node_type_cmp_normal(), register_node_type_cmp_normalize(), register_node_type_cmp_output_file(), register_node_type_cmp_pixelate(), register_node_type_cmp_planetrackdeform(), register_node_type_cmp_premulkey(), register_node_type_cmp_rgb(), register_node_type_cmp_rgbtobw(), register_node_type_cmp_rlayers(), register_node_type_cmp_rotate(), register_node_type_cmp_scale(), register_node_type_cmp_sephsva(), register_node_type_cmp_seprgba(), register_node_type_cmp_sepycca(), register_node_type_cmp_sepyuva(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_stabilize2d(), register_node_type_cmp_sunbeams(), register_node_type_cmp_switch(), register_node_type_cmp_switch_view(), register_node_type_cmp_texture(), register_node_type_cmp_tonemap(), register_node_type_cmp_trackpos(), register_node_type_cmp_transform(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_value(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), register_node_type_cmp_zcombine(), register_node_type_fn_boolean_math(), register_node_type_fn_float_compare(), register_node_type_fn_input_string(), register_node_type_fn_input_vector(), register_node_type_fn_random_float(), register_node_type_geo_align_rotation_to_vector(), register_node_type_geo_attribute_clamp(), register_node_type_geo_attribute_color_ramp(), register_node_type_geo_attribute_combine_xyz(), register_node_type_geo_attribute_compare(), register_node_type_geo_attribute_convert(), register_node_type_geo_attribute_fill(), register_node_type_geo_attribute_map_range(), register_node_type_geo_attribute_math(), register_node_type_geo_attribute_mix(), register_node_type_geo_attribute_proximity(), register_node_type_geo_attribute_randomize(), register_node_type_geo_attribute_remove(), register_node_type_geo_attribute_separate_xyz(), register_node_type_geo_attribute_vector_math(), register_node_type_geo_boolean(), register_node_type_geo_bounding_box(), register_node_type_geo_collection_info(), register_node_type_geo_edge_split(), register_node_type_geo_group(), register_node_type_geo_is_viewport(), register_node_type_geo_join_geometry(), register_node_type_geo_mesh_primitive_circle(), register_node_type_geo_mesh_primitive_cone(), register_node_type_geo_mesh_primitive_cube(), register_node_type_geo_mesh_primitive_cylinder(), register_node_type_geo_mesh_primitive_grid(), register_node_type_geo_mesh_primitive_ico_sphere(), register_node_type_geo_mesh_primitive_line(), register_node_type_geo_mesh_primitive_uv_sphere(), register_node_type_geo_object_info(), register_node_type_geo_point_distribute(), register_node_type_geo_point_instance(), register_node_type_geo_point_rotate(), register_node_type_geo_point_scale(), register_node_type_geo_point_separate(), register_node_type_geo_point_translate(), register_node_type_geo_points_to_volume(), register_node_type_geo_sample_texture(), register_node_type_geo_subdivide(), register_node_type_geo_subdivision_surface(), register_node_type_geo_transform(), register_node_type_geo_triangulate(), register_node_type_geo_volume_to_mesh(), register_node_type_sh_add_shader(), register_node_type_sh_ambient_occlusion(), register_node_type_sh_attribute(), register_node_type_sh_background(), register_node_type_sh_bevel(), register_node_type_sh_blackbody(), register_node_type_sh_brightcontrast(), register_node_type_sh_bsdf_anisotropic(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_hair(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_toon(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_bsdf_velvet(), register_node_type_sh_bump(), register_node_type_sh_camera(), register_node_type_sh_clamp(), register_node_type_sh_combhsv(), register_node_type_sh_combrgb(), register_node_type_sh_combxyz(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_displacement(), register_node_type_sh_eevee_specular(), register_node_type_sh_emission(), register_node_type_sh_fresnel(), register_node_type_sh_gamma(), register_node_type_sh_geometry(), register_node_type_sh_group(), register_node_type_sh_hair_info(), register_node_type_sh_holdout(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_layer_weight(), register_node_type_sh_light_falloff(), register_node_type_sh_light_path(), register_node_type_sh_map_range(), register_node_type_sh_mapping(), register_node_type_sh_math(), register_node_type_sh_mix_rgb(), register_node_type_sh_mix_shader(), register_node_type_sh_normal(), register_node_type_sh_normal_map(), register_node_type_sh_object_info(), register_node_type_sh_output_aov(), register_node_type_sh_output_light(), register_node_type_sh_output_linestyle(), register_node_type_sh_output_material(), register_node_type_sh_output_world(), register_node_type_sh_particle_info(), register_node_type_sh_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_sephsv(), register_node_type_sh_seprgb(), register_node_type_sh_sepxyz(), register_node_type_sh_shadertorgb(), register_node_type_sh_squeeze(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tangent(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_coord(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_pointdensity(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_tex_white_noise(), register_node_type_sh_uvalongstroke(), register_node_type_sh_uvmap(), register_node_type_sh_valtorgb(), register_node_type_sh_value(), register_node_type_sh_vect_math(), register_node_type_sh_vect_transform(), register_node_type_sh_vector_displacement(), register_node_type_sh_vector_rotate(), register_node_type_sh_vertex_color(), register_node_type_sh_volume_absorption(), register_node_type_sh_volume_info(), register_node_type_sh_volume_principled(), register_node_type_sh_volume_scatter(), register_node_type_sh_wavelength(), register_node_type_sh_wireframe(), register_node_type_tex_at(), register_node_type_tex_bricks(), register_node_type_tex_checker(), register_node_type_tex_compose(), register_node_type_tex_coord(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_decompose(), register_node_type_tex_distance(), register_node_type_tex_group(), register_node_type_tex_hue_sat(), register_node_type_tex_image(), register_node_type_tex_invert(), register_node_type_tex_math(), register_node_type_tex_mix_rgb(), register_node_type_tex_output(), register_node_type_tex_rgbtobw(), register_node_type_tex_rotate(), register_node_type_tex_scale(), register_node_type_tex_texture(), register_node_type_tex_translate(), register_node_type_tex_valtonor(), register_node_type_tex_valtorgb(), and register_node_type_tex_viewer().

◆ node_type_storage()

void node_type_storage ( bNodeType ntype,
const char *  storagename,
void(*)(struct bNode *node freefunc,
void(*)(struct bNodeTree *dest_ntree, struct bNode *dest_node, const struct bNode *src_node)  copyfunc 
)
Warning
Nodes defining a storage type must allocate this for new nodes. Otherwise nodes will reload as undefined (T46619).

Definition at line 4599 of file node.cc.

References BLI_strncpy(), bNodeType::copyfunc, bNodeType::freefunc, and bNodeType::storagename.

Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_antialiasing(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_bokehimage(), register_node_type_cmp_boxmask(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_colorcorrection(), register_node_type_cmp_crop(), register_node_type_cmp_cryptomatte(), register_node_type_cmp_cryptomatte_legacy(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_denoise(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_distance_matte(), register_node_type_cmp_ellipsemask(), register_node_type_cmp_glare(), register_node_type_cmp_huecorrect(), register_node_type_cmp_image(), register_node_type_cmp_keying(), register_node_type_cmp_keyingscreen(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_mask(), register_node_type_cmp_movieclip(), register_node_type_cmp_moviedistortion(), register_node_type_cmp_output_file(), register_node_type_cmp_planetrackdeform(), register_node_type_cmp_rlayers(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_sunbeams(), register_node_type_cmp_tonemap(), register_node_type_cmp_trackpos(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_vecblur(), register_node_type_cmp_viewer(), register_node_type_fn_input_string(), register_node_type_fn_input_vector(), register_node_type_frame(), register_node_type_geo_align_rotation_to_vector(), register_node_type_geo_attribute_clamp(), register_node_type_geo_attribute_color_ramp(), register_node_type_geo_attribute_combine_xyz(), register_node_type_geo_attribute_compare(), register_node_type_geo_attribute_convert(), register_node_type_geo_attribute_map_range(), register_node_type_geo_attribute_math(), register_node_type_geo_attribute_mix(), register_node_type_geo_attribute_proximity(), register_node_type_geo_attribute_randomize(), register_node_type_geo_attribute_separate_xyz(), register_node_type_geo_attribute_vector_math(), register_node_type_geo_collection_info(), register_node_type_geo_mesh_primitive_circle(), register_node_type_geo_mesh_primitive_cone(), register_node_type_geo_mesh_primitive_cylinder(), register_node_type_geo_mesh_primitive_line(), register_node_type_geo_object_info(), register_node_type_geo_point_instance(), register_node_type_geo_point_rotate(), register_node_type_geo_point_scale(), register_node_type_geo_point_translate(), register_node_type_geo_points_to_volume(), register_node_type_geo_volume_to_mesh(), register_node_type_sh_add_shader(), register_node_type_sh_ambient_occlusion(), register_node_type_sh_attribute(), register_node_type_sh_background(), register_node_type_sh_bevel(), register_node_type_sh_blackbody(), register_node_type_sh_brightcontrast(), register_node_type_sh_bsdf_anisotropic(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_hair(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_toon(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_bsdf_velvet(), register_node_type_sh_bump(), register_node_type_sh_camera(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_displacement(), register_node_type_sh_eevee_specular(), register_node_type_sh_emission(), register_node_type_sh_fresnel(), register_node_type_sh_gamma(), register_node_type_sh_geometry(), register_node_type_sh_hair_info(), register_node_type_sh_holdout(), register_node_type_sh_layer_weight(), register_node_type_sh_light_falloff(), register_node_type_sh_light_path(), register_node_type_sh_mix_shader(), register_node_type_sh_normal_map(), register_node_type_sh_output_aov(), register_node_type_sh_output_light(), register_node_type_sh_output_material(), register_node_type_sh_output_world(), register_node_type_sh_script(), register_node_type_sh_shadertorgb(), register_node_type_sh_squeeze(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tangent(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_coord(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_pointdensity(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_uvmap(), register_node_type_sh_valtorgb(), register_node_type_sh_vect_transform(), register_node_type_sh_vector_displacement(), register_node_type_sh_vertex_color(), register_node_type_sh_volume_absorption(), register_node_type_sh_volume_principled(), register_node_type_sh_volume_scatter(), register_node_type_sh_wavelength(), register_node_type_sh_wireframe(), register_node_type_tex_coord(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_distance(), register_node_type_tex_image(), register_node_type_tex_math(), register_node_type_tex_output(), and register_node_type_tex_valtorgb().

◆ node_type_update()

void node_type_update ( struct bNodeType ntype,
void(*)(struct bNodeTree *ntree, struct bNode *node updatefunc 
)

Definition at line 4623 of file node.cc.

References bNodeType::updatefunc.

Referenced by register_node_type_cmp_image(), register_node_type_cmp_math(), register_node_type_cmp_output_file(), register_node_type_cmp_rlayers(), register_node_type_cmp_scale(), register_node_type_cmp_switch_view(), register_node_type_fn_boolean_math(), register_node_type_fn_float_compare(), register_node_type_geo_align_rotation_to_vector(), register_node_type_geo_attribute_clamp(), register_node_type_geo_attribute_combine_xyz(), register_node_type_geo_attribute_compare(), register_node_type_geo_attribute_fill(), register_node_type_geo_attribute_map_range(), register_node_type_geo_attribute_math(), register_node_type_geo_attribute_mix(), register_node_type_geo_attribute_randomize(), register_node_type_geo_attribute_separate_xyz(), register_node_type_geo_attribute_vector_math(), register_node_type_geo_mesh_primitive_line(), register_node_type_geo_point_distribute(), register_node_type_geo_point_instance(), register_node_type_geo_point_rotate(), register_node_type_geo_point_scale(), register_node_type_geo_point_translate(), register_node_type_geo_points_to_volume(), register_node_type_geo_volume_to_mesh(), register_node_type_group_input(), register_node_type_group_output(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_principled(), register_node_type_sh_map_range(), register_node_type_sh_mapping(), register_node_type_sh_math(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_white_noise(), register_node_type_sh_vect_math(), register_node_type_sh_vector_rotate(), and register_node_type_tex_math().

◆ node_undefined_poll()

static bool node_undefined_poll ( bNodeType UNUSEDntype,
bNodeTree UNUSEDnodetree,
const char **  UNUSEDr_disabled_hint 
)
static

Definition at line 4658 of file node.cc.

Referenced by register_undefined_types().

◆ node_unlink_attached()

static void node_unlink_attached ( bNodeTree ntree,
bNode parent 
)
static

Definition at line 2861 of file node.cc.

References LISTBASE_FOREACH, node, nodeDetachNode(), bNodeTree::nodes, and ntree.

Referenced by node_free_node().

◆ nodeAddLink()

bNodeLink* nodeAddLink ( bNodeTree ntree,
bNode fromnode,
bNodeSocket fromsock,
bNode tonode,
bNodeSocket tosock 
)

Definition at line 2189 of file node.cc.

References BLI_addtail(), BLI_assert, bNodeSocket::flag, bNodeLink::fromnode, bNodeLink::fromsock, bNodeSocket::in_out, bNodeSocket::link, bNodeTree::links, MEM_callocN, bNodeLink::multi_input_socket_index, node_count_links(), ntree, NTREE_UPDATE_LINKS, SOCK_IN, SOCK_MULTI_INPUT, SOCK_OUT, bNodeLink::tonode, bNodeLink::tosock, and bNodeTree::update.

Referenced by add_reroute_do_socket_section(), ambient_occlusion_node_relink(), bc_node_add_link(), BKE_linestyle_default_shader(), displacement_node_insert(), do_versions_material_convert_legacy_blend_mode(), ED_node_composit_default(), ED_node_link_insert(), ED_node_shader_default(), ED_node_texture_default(), EEVEE_material_default_diffuse_get(), EEVEE_material_default_error_get(), EEVEE_material_default_glossy_get(), EEVEE_shader_default_surface_nodetree(), EEVEE_shader_default_world_nodetree(), flatten_group_do(), Freestyle::BlenderStrokeRenderer::GetStrokeShader(), material_default_holdout_init(), material_default_surface_init(), material_default_volume_init(), MOD_nodes_init(), node_clipboard_paste_exec(), node_group_input_update(), node_group_make_insert_selected(), node_group_output_update(), node_group_separate_selected(), node_group_ungroup(), node_link_viewer(), node_socket_add_replace(), ntree_shader_bump_branches(), ntree_shader_bypass_bump_link(), ntree_shader_copy_branch(), ntree_shader_copy_branch_displacement(), ntree_shader_expand_socket_default(), ntree_shader_groups_expand_inputs(), ntree_shader_relink_displacement(), ntree_shader_relink_node_normal(), proj_paint_add_slot(), snode_autoconnect_input(), square_roughness_node_insert(), update_mapping_node_inputs_and_properties(), update_math_node_single_operand_operators(), update_noise_and_wave_distortion(), update_vector_math_node_add_and_subtract_operators(), update_vector_math_node_average_operator(), update_vector_math_node_cross_product_operator(), update_vector_math_node_normalize_operator(), update_voronoi_node_coloring(), update_voronoi_node_crackle(), update_voronoi_node_square_distance(), and version_node_socket_duplicate().

◆ nodeAddNode()

bNode* nodeAddNode ( const struct bContext C,
bNodeTree ntree,
const char *  idname 
)

◆ nodeAddSocket()

bNodeSocket* nodeAddSocket ( bNodeTree ntree,
bNode node,
eNodeSocketInOut  in_out,
const char *  idname,
const char *  identifier,
const char *  name 
)

◆ nodeAddStaticNode()

bNode* nodeAddStaticNode ( const struct bContext C,
bNodeTree ntree,
int  type 
)

◆ nodeAddStaticSocket()

bNodeSocket* nodeAddStaticSocket ( bNodeTree ntree,
bNode node,
eNodeSocketInOut  in_out,
int  type,
int  subtype,
const char *  identifier,
const char *  name 
)

◆ nodeAttachNode()

void nodeAttachNode ( bNode node,
bNode parent 
)

◆ nodeAttachNodeCheck()

bool nodeAttachNodeCheck ( const bNode node,
const bNode parent 
)

Definition at line 2438 of file node.cc.

References node.

Referenced by nodeAttachNode().

◆ nodeChainIter()

void nodeChainIter ( const bNodeTree ntree,
const bNode node_start,
bool(*)(bNode *, bNode *, void *, const bool)  callback,
void *  userdata,
const bool  reversed 
)

Iterate over a chain of nodes, starting with node_start, executing callback for each node (which can return false to end iterator).

Parameters
reversedfor backwards iteration
Note
Recursive

Definition at line 1879 of file node.cc.

References callback, bNodeLink::flag, bNodeLink::fromnode, bNodeSocket::link, bNodeTree::links, LISTBASE_FOREACH, NODE_LINK_VALID, nodeChainIter(), ntree, and bNodeLink::tonode.

Referenced by node_link_insert_offset_frame_chains(), node_link_insert_offset_ntree(), and nodeChainIter().

◆ nodeChainIterBackwards()

void nodeChainIterBackwards ( const bNodeTree ntree,
const bNode node_start,
bool(*)(bNode *, bNode *, void *)  callback,
void *  userdata,
int  recursion_lvl 
)

Iterate over a chain of nodes, starting with node_start, executing callback for each node (which can return false to end iterator).

Faster than nodeChainIter. Iter only once per node. Can be called recursively (using another nodeChainIterBackwards) by setting the recursion_lvl accordingly.

Note
Needs updated socket links (ntreeUpdateTree).
Recursive

Definition at line 1944 of file node.cc.

References BLI_assert, callback, iter_backwards_ex(), LISTBASE_FOREACH, node, bNodeTree::nodes, and ntree.

Referenced by ntree_shader_copy_branch(), ntree_shader_tag_nodes(), and ntreeGPUMaterialNodes().

◆ nodeClearActive()

void nodeClearActive ( bNodeTree ntree)

Definition at line 3682 of file node.cc.

References LISTBASE_FOREACH, node, NODE_ACTIVE, NODE_ACTIVE_ID, bNodeTree::nodes, and ntree.

◆ nodeClearActiveID()

void nodeClearActiveID ( bNodeTree ntree,
short  idtype 
)

Definition at line 3651 of file node.cc.

References GS, LISTBASE_FOREACH, node, NODE_ACTIVE_ID, bNodeTree::nodes, and ntree.

Referenced by ED_node_set_active().

◆ nodeCountSocketLinks()

int nodeCountSocketLinks ( const bNodeTree ntree,
const bNodeSocket sock 
)

◆ nodeDetachNode()

void nodeDetachNode ( struct bNode node)

◆ nodeFindLink()

bNodeLink* nodeFindLink ( bNodeTree ntree,
const bNodeSocket from,
const bNodeSocket to 
)

◆ nodeFindNode()

bool nodeFindNode ( bNodeTree ntree,
bNodeSocket sock,
bNode **  r_node,
int *  r_sockindex 
)

◆ nodeFindNodebyName()

bNode* nodeFindNodebyName ( bNodeTree ntree,
const char *  name 
)

Definition at line 1817 of file node.cc.

References BLI_findstring(), bNodeSocket::name, bNodeTree::nodes, and ntree.

Referenced by skip_fcurve_selected_data().

◆ nodeFindRootParent()

bNode* nodeFindRootParent ( bNode node)
Note
Recursive

Definition at line 1849 of file node.cc.

References node, NODE_FRAME, and nodeFindRootParent().

Referenced by node_link_insert_offset_chain_cb(), node_link_insert_offset_ntree(), and nodeFindRootParent().

◆ nodeFindSocket()

struct bNodeSocket* nodeFindSocket ( const bNode node,
eNodeSocketInOut  in_out,
const char *  identifier 
)

Definition at line 1376 of file node.cc.

References bNodeSocket::identifier, bNodeSocket::in_out, LISTBASE_FOREACH, node, SOCK_IN, and STREQ.

◆ nodeFromView()

void nodeFromView ( const bNode node,
float  x,
float  y,
float rx,
float ry 
)

Definition at line 2425 of file node.cc.

References node, x, and y.

Referenced by nodeAttachNode().

◆ nodeGetActive()

bNode* nodeGetActive ( bNodeTree ntree)

◆ nodeGetActiveID()

bNode* nodeGetActiveID ( bNodeTree ntree,
short  idtype 
)

◆ nodeInsertSocket()

bNodeSocket* nodeInsertSocket ( bNodeTree ntree,
bNode node,
eNodeSocketInOut  in_out,
const char *  idname,
bNodeSocket next_sock,
const char *  identifier,
const char *  name 
)

◆ nodeInsertStaticSocket()

bNodeSocket* nodeInsertStaticSocket ( bNodeTree ntree,
bNode node,
eNodeSocketInOut  in_out,
int  type,
int  subtype,
bNodeSocket next_sock,
const char *  identifier,
const char *  name 
)

◆ nodeInternalRelink()

void nodeInternalRelink ( bNodeTree ntree,
bNode node 
)

◆ nodeIsChildOf()

bool nodeIsChildOf ( const bNode parent,
const bNode child 
)
Returns
true if child has parent as a parent/grandparent/...
Note
Recursive

Definition at line 1861 of file node.cc.

References nodeIsChildOf(), and bNode::parent.

Referenced by node_link_insert_offset_chain_cb(), node_link_insert_offset_frame_chains(), node_link_insert_offset_ntree(), node_parent_offset_apply(), and nodeIsChildOf().

◆ nodeLabel()

void nodeLabel ( bNodeTree ntree,
bNode node,
char *  label,
int  maxlen 
)

◆ nodeLinkIsHidden()

bool nodeLinkIsHidden ( const bNodeLink link)

◆ nodeModifySocketType()

void nodeModifySocketType ( bNodeTree ntree,
bNode UNUSEDnode,
bNodeSocket sock,
int  type,
int  subtype 
)

◆ nodeMuteFromSocketLinks()

static bool nodeMuteFromSocketLinks ( const bNodeTree ntree,
const bNodeSocket sock 
)
static

◆ nodeMuteLink()

static void nodeMuteLink ( bNodeLink link)
static

◆ nodeMuteLinkToggle()

void nodeMuteLinkToggle ( bNodeTree ntree,
bNodeLink link 
)

◆ nodeMuteRerouteInputLinks()

static void nodeMuteRerouteInputLinks ( bNodeTree ntree,
bNode node,
const bool  mute 
)
static

◆ nodeMuteRerouteOutputLinks()

static void nodeMuteRerouteOutputLinks ( struct bNodeTree ntree,
struct bNode node,
const bool  mute 
)
static

◆ nodeParentsIter()

void nodeParentsIter ( bNode node,
bool(*)(bNode *, void *)  callback,
void *  userdata 
)

Iterate over all parents of node, executing callback for each parent (which can return false to end iterator)

Note
Recursive

Definition at line 1972 of file node.cc.

References callback, node, and nodeParentsIter().

Referenced by node_link_insert_offset_ntree(), and nodeParentsIter().

◆ nodePositionPropagate()

void nodePositionPropagate ( bNode node)

◆ nodePositionRelative()

void nodePositionRelative ( bNode from_node,
bNode to_node,
bNodeSocket from_sock,
bNodeSocket to_sock 
)

◆ nodeRegisterSocketType()

void nodeRegisterSocketType ( bNodeSocketType st)

◆ nodeRegisterType()

void nodeRegisterType ( bNodeType nt)

Definition at line 1298 of file node.cc.

References BLI_assert, BLI_ghash_insert(), G_MAIN, bNodeType::idname, nodetypes_hash, bNodeType::poll, and update_typeinfo().

Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_antialiasing(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_bokehblur(), register_node_type_cmp_bokehimage(), register_node_type_cmp_boxmask(), register_node_type_cmp_brightcontrast(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_colorcorrection(), register_node_type_cmp_combhsva(), register_node_type_cmp_combrgba(), register_node_type_cmp_combycca(), register_node_type_cmp_combyuva(), register_node_type_cmp_composite(), register_node_type_cmp_cornerpin(), register_node_type_cmp_crop(), register_node_type_cmp_cryptomatte(), register_node_type_cmp_cryptomatte_legacy(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_denoise(), register_node_type_cmp_despeckle(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_displace(), register_node_type_cmp_distance_matte(), register_node_type_cmp_doubleedgemask(), register_node_type_cmp_ellipsemask(), register_node_type_cmp_exposure(), register_node_type_cmp_filter(), register_node_type_cmp_flip(), register_node_type_cmp_gamma(), register_node_type_cmp_glare(), register_node_type_cmp_group(), register_node_type_cmp_hue_sat(), register_node_type_cmp_huecorrect(), register_node_type_cmp_idmask(), register_node_type_cmp_image(), register_node_type_cmp_inpaint(), register_node_type_cmp_invert(), register_node_type_cmp_keying(), register_node_type_cmp_keyingscreen(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_range(), register_node_type_cmp_map_value(), register_node_type_cmp_mapuv(), register_node_type_cmp_mask(), register_node_type_cmp_math(), register_node_type_cmp_mix_rgb(), register_node_type_cmp_movieclip(), register_node_type_cmp_moviedistortion(), register_node_type_cmp_normal(), register_node_type_cmp_normalize(), register_node_type_cmp_output_file(), register_node_type_cmp_pixelate(), register_node_type_cmp_planetrackdeform(), register_node_type_cmp_premulkey(), register_node_type_cmp_rgb(), register_node_type_cmp_rgbtobw(), register_node_type_cmp_rlayers(), register_node_type_cmp_rotate(), register_node_type_cmp_scale(), register_node_type_cmp_sephsva(), register_node_type_cmp_seprgba(), register_node_type_cmp_sepycca(), register_node_type_cmp_sepyuva(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_stabilize2d(), register_node_type_cmp_sunbeams(), register_node_type_cmp_switch(), register_node_type_cmp_switch_view(), register_node_type_cmp_texture(), register_node_type_cmp_tonemap(), register_node_type_cmp_trackpos(), register_node_type_cmp_transform(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_value(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), register_node_type_cmp_zcombine(), register_node_type_fn_boolean_math(), register_node_type_fn_float_compare(), register_node_type_fn_input_string(), register_node_type_fn_input_vector(), register_node_type_fn_random_float(), register_node_type_frame(), register_node_type_geo_align_rotation_to_vector(), register_node_type_geo_attribute_clamp(), register_node_type_geo_attribute_color_ramp(), register_node_type_geo_attribute_combine_xyz(), register_node_type_geo_attribute_compare(), register_node_type_geo_attribute_convert(), register_node_type_geo_attribute_fill(), register_node_type_geo_attribute_map_range(), register_node_type_geo_attribute_math(), register_node_type_geo_attribute_mix(), register_node_type_geo_attribute_proximity(), register_node_type_geo_attribute_randomize(), register_node_type_geo_attribute_remove(), register_node_type_geo_attribute_separate_xyz(), register_node_type_geo_attribute_vector_math(), register_node_type_geo_boolean(), register_node_type_geo_bounding_box(), register_node_type_geo_collection_info(), register_node_type_geo_edge_split(), register_node_type_geo_group(), register_node_type_geo_is_viewport(), register_node_type_geo_join_geometry(), register_node_type_geo_mesh_primitive_circle(), register_node_type_geo_mesh_primitive_cone(), register_node_type_geo_mesh_primitive_cube(), register_node_type_geo_mesh_primitive_cylinder(), register_node_type_geo_mesh_primitive_grid(), register_node_type_geo_mesh_primitive_ico_sphere(), register_node_type_geo_mesh_primitive_line(), register_node_type_geo_mesh_primitive_uv_sphere(), register_node_type_geo_object_info(), register_node_type_geo_point_distribute(), register_node_type_geo_point_instance(), register_node_type_geo_point_rotate(), register_node_type_geo_point_scale(), register_node_type_geo_point_separate(), register_node_type_geo_point_translate(), register_node_type_geo_points_to_volume(), register_node_type_geo_sample_texture(), register_node_type_geo_subdivide(), register_node_type_geo_subdivision_surface(), register_node_type_geo_transform(), register_node_type_geo_triangulate(), register_node_type_geo_volume_to_mesh(), register_node_type_group_input(), register_node_type_group_output(), register_node_type_reroute(), register_node_type_sh_add_shader(), register_node_type_sh_ambient_occlusion(), register_node_type_sh_attribute(), register_node_type_sh_background(), register_node_type_sh_bevel(), register_node_type_sh_blackbody(), register_node_type_sh_brightcontrast(), register_node_type_sh_bsdf_anisotropic(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_hair(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_toon(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_bsdf_velvet(), register_node_type_sh_bump(), register_node_type_sh_camera(), register_node_type_sh_clamp(), register_node_type_sh_combhsv(), register_node_type_sh_combrgb(), register_node_type_sh_combxyz(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_displacement(), register_node_type_sh_eevee_specular(), register_node_type_sh_emission(), register_node_type_sh_fresnel(), register_node_type_sh_gamma(), register_node_type_sh_geometry(), register_node_type_sh_group(), register_node_type_sh_hair_info(), register_node_type_sh_holdout(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_layer_weight(), register_node_type_sh_light_falloff(), register_node_type_sh_light_path(), register_node_type_sh_map_range(), register_node_type_sh_mapping(), register_node_type_sh_math(), register_node_type_sh_mix_rgb(), register_node_type_sh_mix_shader(), register_node_type_sh_normal(), register_node_type_sh_normal_map(), register_node_type_sh_object_info(), register_node_type_sh_output_aov(), register_node_type_sh_output_light(), register_node_type_sh_output_linestyle(), register_node_type_sh_output_material(), register_node_type_sh_output_world(), register_node_type_sh_particle_info(), register_node_type_sh_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_script(), register_node_type_sh_sephsv(), register_node_type_sh_seprgb(), register_node_type_sh_sepxyz(), register_node_type_sh_shadertorgb(), register_node_type_sh_squeeze(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tangent(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_coord(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_pointdensity(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_tex_white_noise(), register_node_type_sh_uvalongstroke(), register_node_type_sh_uvmap(), register_node_type_sh_valtorgb(), register_node_type_sh_value(), register_node_type_sh_vect_math(), register_node_type_sh_vect_transform(), register_node_type_sh_vector_displacement(), register_node_type_sh_vector_rotate(), register_node_type_sh_vertex_color(), register_node_type_sh_volume_absorption(), register_node_type_sh_volume_info(), register_node_type_sh_volume_principled(), register_node_type_sh_volume_scatter(), register_node_type_sh_wavelength(), register_node_type_sh_wireframe(), register_node_type_tex_at(), register_node_type_tex_bricks(), register_node_type_tex_checker(), register_node_type_tex_compose(), register_node_type_tex_coord(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_decompose(), register_node_type_tex_distance(), register_node_type_tex_group(), register_node_type_tex_hue_sat(), register_node_type_tex_image(), register_node_type_tex_invert(), register_node_type_tex_math(), register_node_type_tex_mix_rgb(), register_node_type_tex_output(), register_node_type_tex_rgbtobw(), register_node_type_tex_rotate(), register_node_type_tex_scale(), register_node_type_tex_texture(), register_node_type_tex_translate(), register_node_type_tex_valtonor(), register_node_type_tex_valtorgb(), and register_node_type_tex_viewer().

◆ nodeRemLink()

void nodeRemLink ( bNodeTree ntree,
bNodeLink link 
)

◆ nodeRemoveAllSockets()

void nodeRemoveAllSockets ( bNodeTree ntree,
bNode node 
)

◆ nodeRemoveNode()

void nodeRemoveNode ( Main bmain,
bNodeTree ntree,
bNode node,
bool  do_id_user 
)

◆ nodeRemoveSocket()

void nodeRemoveSocket ( bNodeTree ntree,
bNode node,
bNodeSocket sock 
)

◆ nodeRemSocketLinks()

void nodeRemSocketLinks ( bNodeTree ntree,
bNodeSocket sock 
)

◆ nodeSetActive()

void nodeSetActive ( bNodeTree ntree,
bNode node 
)

◆ nodeSetActiveID()

bool nodeSetActiveID ( bNodeTree ntree,
short  idtype,
ID id 
)

◆ nodeSetSelected()

void nodeSetSelected ( bNode node,
bool  select 
)

◆ nodeSetSocketAvailability()

void nodeSetSocketAvailability ( bNodeSocket sock,
bool  is_available 
)

◆ nodeSocketIsHidden()

int nodeSocketIsHidden ( const bNodeSocket sock)

Definition at line 3721 of file node.cc.

References bNodeSocket::flag, SOCK_HIDDEN, and SOCK_UNAVAIL.

Referenced by nodeLinkIsHidden().

◆ nodeSocketIsRegistered()

bool nodeSocketIsRegistered ( bNodeSocket sock)

Definition at line 1366 of file node.cc.

References NodeSocketTypeUndefined, and bNodeSocket::typeinfo.

◆ nodeSocketLabel()

const char* nodeSocketLabel ( const bNodeSocket sock)

Definition at line 4414 of file node.cc.

References bNodeSocket::label, and bNodeSocket::name.

◆ nodeSocketLinkLimit()

int nodeSocketLinkLimit ( const bNodeSocket sock)

◆ nodeSocketTypeFind()

bNodeSocketType* nodeSocketTypeFind ( const char *  idname)

◆ nodeSocketTypeGetIterator()

GHashIterator* nodeSocketTypeGetIterator ( void  )

Definition at line 1371 of file node.cc.

References BLI_ghashIterator_new(), and nodesockettypes_hash.

◆ nodeStaticSocketInterfaceType()

const char* nodeStaticSocketInterfaceType ( int  type,
int  subtype 
)

◆ nodeStaticSocketType()

const char* nodeStaticSocketType ( int  type,
int  subtype 
)

◆ nodeToView()

void nodeToView ( const bNode node,
float  x,
float  y,
float rx,
float ry 
)

Definition at line 2414 of file node.cc.

References node, x, and y.

Referenced by nodeAttachNode(), and nodeDetachNode().

◆ nodeTypeFind()

bNodeType* nodeTypeFind ( const char *  idname)

◆ nodeTypeGetIterator()

GHashIterator* nodeTypeGetIterator ( void  )

Definition at line 1323 of file node.cc.

References BLI_ghashIterator_new(), and nodetypes_hash.

◆ nodeTypeUndefined()

bool nodeTypeUndefined ( bNode node)

◆ nodeUniqueName()

void nodeUniqueName ( bNodeTree ntree,
bNode node 
)

◆ nodeUnlinkNode()

void nodeUnlinkNode ( bNodeTree ntree,
bNode node 
)

◆ nodeUnMuteLink()

static void nodeUnMuteLink ( bNodeLink link)
static

◆ nodeUnregisterSocketType()

void nodeUnregisterSocketType ( bNodeSocketType st)

◆ nodeUnregisterType()

void nodeUnregisterType ( bNodeType nt)

Definition at line 1311 of file node.cc.

References BLI_ghash_remove(), bNodeType::idname, node_free_type(), and nodetypes_hash.

◆ nodeUpdate()

void nodeUpdate ( bNodeTree ntree,
bNode node 
)

◆ nodeUpdateID()

bool nodeUpdateID ( bNodeTree ntree,
ID id 
)

◆ nodeUpdateInternalLinks()

void nodeUpdateInternalLinks ( bNodeTree ntree,
bNode node 
)

Definition at line 4380 of file node.cc.

References BLI_freelistN(), node, and ntree.

Referenced by node_reroute_inherit_type_recursive(), nodeUpdate(), nodeUpdateID(), and ntreeUpdateTree().

◆ ntree_blend_read_data()

static void ntree_blend_read_data ( BlendDataReader reader,
ID id 
)
static

Definition at line 773 of file node.cc.

References ntree, and ntreeBlendReadData().

◆ ntree_blend_read_expand()

static void ntree_blend_read_expand ( BlendExpander expander,
ID id 
)
static

Definition at line 936 of file node.cc.

References ntree, and ntreeBlendReadExpand().

◆ ntree_blend_read_lib()

static void ntree_blend_read_lib ( BlendLibReader reader,
ID id 
)
static

Definition at line 863 of file node.cc.

References ntree, and ntreeBlendReadLib().

◆ ntree_blend_write()

static void ntree_blend_write ( BlendWriter writer,
ID id,
const void *  id_address 
)
static

◆ ntree_copy_data()

static void ntree_copy_data ( Main UNUSEDbmain,
ID id_dst,
const ID id_src,
const int  flag 
)
static

◆ ntree_free_data()

static void ntree_free_data ( ID id)
static

◆ ntree_free_type()

static void ntree_free_type ( void *  treetype_v)
static

Definition at line 1229 of file node.cc.

References G_MAIN, MEM_freeN, and update_typeinfo().

Referenced by BKE_node_system_exit(), and ntreeTypeFreeLink().

◆ ntree_init_data()

static void ntree_init_data ( ID id)
static

Definition at line 114 of file node.cc.

References ntree, and ntree_set_typeinfo().

◆ ntree_interface_identifier()

static void ntree_interface_identifier ( bNodeTree ntree,
const char *  base,
char *  identifier,
int  maxlen,
char *  name,
char *  description 
)
static

◆ ntree_interface_identifier_base()

static void ntree_interface_identifier_base ( bNodeTree ntree,
char *  base 
)
static

Definition at line 3383 of file node.cc.

References bNodeTree::id, ID::name, ntree, and RNA_identifier_sanitize().

Referenced by ntree_interface_type_create(), and ntreeInterfaceTypeGet().

◆ ntree_interface_type_create()

static void ntree_interface_type_create ( bNodeTree ntree)
static

◆ ntree_interface_unique_identifier_check()

static bool ntree_interface_unique_identifier_check ( void *  UNUSEDdata,
const char *  identifier 
)
static

Definition at line 3391 of file node.cc.

References bNodeSocket::identifier, and RNA_struct_find().

Referenced by ntree_interface_identifier().

◆ ntree_set_typeinfo()

static void ntree_set_typeinfo ( bNodeTree ntree,
bNodeTreeType typeinfo 
)
static

◆ ntree_update_link_pointers()

static void ntree_update_link_pointers ( bNodeTree ntree)
static

◆ ntree_update_node_level()

static void ntree_update_node_level ( bNodeTree ntree)
static

Definition at line 4134 of file node.cc.

References LISTBASE_FOREACH, node, node_get_deplist_recurs(), bNodeTree::nodes, and ntree.

Referenced by ntreeUpdateTree().

◆ ntree_validate_links()

static void ntree_validate_links ( bNodeTree ntree)
static

◆ ntreeAddSocketInterface()

bNodeSocket* ntreeAddSocketInterface ( bNodeTree ntree,
eNodeSocketInOut  in_out,
const char *  idname,
const char *  name 
)

◆ ntreeAddSocketInterfaceFromSocket()

struct bNodeSocket* ntreeAddSocketInterfaceFromSocket ( bNodeTree ntree,
bNode from_node,
bNodeSocket from_sock 
)

◆ ntreeAddTree()

bNodeTree* ntreeAddTree ( Main bmain,
const char *  name,
const char *  idname 
)

◆ ntreeBlendReadData()

void ntreeBlendReadData ( BlendDataReader reader,
bNodeTree ntree 
)

◆ ntreeBlendReadExpand()

void ntreeBlendReadExpand ( BlendExpander expander,
bNodeTree ntree 
)

◆ ntreeBlendReadLib()

void ntreeBlendReadLib ( struct BlendLibReader reader,
struct bNodeTree ntree 
)

◆ ntreeBlendWrite()

void ntreeBlendWrite ( BlendWriter writer,
bNodeTree ntree 
)

◆ ntreeCopyTree()

bNodeTree* ntreeCopyTree ( Main bmain,
const bNodeTree ntree 
)

Definition at line 2562 of file node.cc.

References ntree, and ntreeCopyTree_ex().

◆ ntreeCopyTree_ex()

bNodeTree* ntreeCopyTree_ex ( const bNodeTree ntree,
Main bmain,
const bool  do_id_user 
)

◆ ntreeCopyTree_ex_new_pointers()

bNodeTree* ntreeCopyTree_ex_new_pointers ( const bNodeTree ntree,
Main bmain,
const bool  do_id_user 
)

◆ ntreeFindSocketInterface()

bNodeSocket* ntreeFindSocketInterface ( bNodeTree ntree,
eNodeSocketInOut  in_out,
const char *  identifier 
)

◆ ntreeFindType()

bNode* ntreeFindType ( const bNodeTree ntree,
int  type 
)

Definition at line 3505 of file node.cc.

References LISTBASE_FOREACH, node, bNodeTree::nodes, ntree, and type.

Referenced by ntreeHasType().

◆ ntreeFreeCache()

void ntreeFreeCache ( bNodeTree ntree)

◆ ntreeFreeEmbeddedTree()

void ntreeFreeEmbeddedTree ( bNodeTree ntree)

◆ ntreeFreeLocalNode()

void ntreeFreeLocalNode ( bNodeTree ntree,
bNode node 
)

◆ ntreeFreeLocalTree()

void ntreeFreeLocalTree ( bNodeTree ntree)

◆ ntreeFreeTree()

void ntreeFreeTree ( bNodeTree ntree)

◆ ntreeFromID()

bNodeTree* ntreeFromID ( ID id)

◆ ntreeGetDependencyList()

void ntreeGetDependencyList ( struct bNodeTree ntree,
struct bNode ***  r_deplist,
int *  r_deplist_len 
)

◆ ntreeHasTree()

bool ntreeHasTree ( const bNodeTree ntree,
const bNodeTree lookup 
)

Definition at line 3522 of file node.cc.

References ELEM, LISTBASE_FOREACH, node, NODE_CUSTOM_GROUP, NODE_GROUP, bNodeTree::nodes, and ntree.

◆ ntreeHasType()

bool ntreeHasType ( const bNodeTree ntree,
int  type 
)

Definition at line 3517 of file node.cc.

References ntree, ntreeFindType(), and type.

◆ ntreeInsertSocketInterface()

bNodeSocket* ntreeInsertSocketInterface ( bNodeTree ntree,
eNodeSocketInOut  in_out,
const char *  idname,
bNodeSocket next_sock,
const char *  name 
)

◆ ntreeInsertSocketInterfaceFromSocket()

struct bNodeSocket* ntreeInsertSocketInterfaceFromSocket ( bNodeTree ntree,
bNodeSocket next_sock,
bNode from_node,
bNodeSocket from_sock 
)

◆ ntreeInterfaceTypeFree()

void ntreeInterfaceTypeFree ( bNodeTree ntree)

Definition at line 3484 of file node.cc.

References BLENDER_RNA, bNodeTree::interface_type, ntree, and RNA_struct_free().

Referenced by ntree_free_data(), and ntreeInterfaceTypeUpdate().

◆ ntreeInterfaceTypeGet()

StructRNA* ntreeInterfaceTypeGet ( bNodeTree ntree,
bool  create 
)

◆ ntreeInterfaceTypeUpdate()

void ntreeInterfaceTypeUpdate ( bNodeTree ntree)

Definition at line 3492 of file node.cc.

References ntree, ntree_interface_type_create(), and ntreeInterfaceTypeFree().

Referenced by ntreeUpdateTree().

◆ ntreeIsRegistered()

bool ntreeIsRegistered ( bNodeTree ntree)

Definition at line 1244 of file node.cc.

References NodeTreeTypeUndefined, ntree, and bNodeTree::typeinfo.

◆ ntreeLocalize()

bNodeTree* ntreeLocalize ( bNodeTree ntree)

◆ ntreeLocalMerge()

void ntreeLocalMerge ( Main bmain,
bNodeTree localtree,
bNodeTree ntree 
)

Definition at line 3238 of file node.cc.

References bNodeTreeType::local_merge, MEM_freeN, ntree, ntreeFreeTree(), and bNodeTree::typeinfo.

Referenced by compo_freejob().

◆ ntreeLocalSync()

void ntreeLocalSync ( bNodeTree localtree,
bNodeTree ntree 
)

Definition at line 3227 of file node.cc.

References bNodeTreeType::local_sync, ntree, and bNodeTree::typeinfo.

Referenced by shader_preview_updatejob().

◆ ntreeNodeExists()

bool ntreeNodeExists ( const bNodeTree ntree,
const bNode testnode 
)

Definition at line 3153 of file node.cc.

References LISTBASE_FOREACH, node, bNodeTree::nodes, and ntree.

◆ ntreeNodeFlagSet()

void ntreeNodeFlagSet ( const bNodeTree ntree,
const int  flag,
const bool  enable 
)

◆ ntreeOutputExists()

bool ntreeOutputExists ( const bNode node,
const bNodeSocket testsock 
)

Definition at line 3163 of file node.cc.

References LISTBASE_FOREACH, and node.

◆ ntreeRemoveSocketInterface()

void ntreeRemoveSocketInterface ( bNodeTree ntree,
bNodeSocket sock 
)

◆ ntreeSetOutput()

void ntreeSetOutput ( bNodeTree ntree)

◆ ntreeSetTypes()

void ntreeSetTypes ( const struct bContext C,
bNodeTree ntree 
)

◆ ntreeTagUsedSockets()

void ntreeTagUsedSockets ( bNodeTree ntree)

◆ ntreeTypeAdd()

void ntreeTypeAdd ( bNodeTreeType nt)

◆ ntreeTypeFind()

bNodeTreeType* ntreeTypeFind ( const char *  idname)

◆ ntreeTypeFreeLink()

void ntreeTypeFreeLink ( const bNodeTreeType nt)

◆ ntreeTypeGetIterator()

GHashIterator* ntreeTypeGetIterator ( void  )

Definition at line 1249 of file node.cc.

References BLI_ghashIterator_new(), and nodetreetypes_hash.

◆ ntreeUpdateAllNew()

void ntreeUpdateAllNew ( Main main)

◆ ntreeUpdateAllUsers()

void ntreeUpdateAllUsers ( Main main,
ID id 
)

◆ ntreeUpdateTree()

void ntreeUpdateTree ( Main bmain,
bNodeTree ntree 
)

Definition at line 4262 of file node.cc.

References bNodeTree::id, bNodeTree::is_updating, LISTBASE_FOREACH, node, NODE_UPDATE, bNodeTree::nodes, nodeUpdateInternalLinks(), ntree, NTREE_UPDATE, NTREE_UPDATE_GROUP, ntree_update_link_pointers(), NTREE_UPDATE_LINKS, ntree_update_node_level(), NTREE_UPDATE_NODES, ntree_validate_links(), ntreeInterfaceTypeUpdate(), ntreeUpdateAllUsers(), bNodeTree::typeinfo, bNodeTreeType::update, and bNodeTree::update.

Referenced by add_reroute_exec(), ambient_occlusion_node_relink(), BKE_linestyle_default_shader(), cut_links_exec(), detach_links_exec(), displacement_node_insert(), do_versions_material_convert_legacy_blend_mode(), ED_node_composit_default(), ED_node_link_insert(), ED_node_shader_default(), ED_node_texture_default(), Freestyle::BlenderStrokeRenderer::GetStrokeShader(), MOD_nodes_init(), mute_links_exec(), node_add_collection_exec(), node_add_group_exec(), node_add_node(), node_add_object_exec(), node_add_texture_exec(), node_clipboard_paste_exec(), node_delete_exec(), node_delete_reconnect_exec(), node_duplicate_exec(), node_group_insert_exec(), node_group_make_exec(), node_group_separate_exec(), node_group_ungroup_exec(), node_link_exit(), node_link_item_apply(), node_link_viewer(), node_make_link_exec(), node_socket_add_replace(), node_socket_disconnect(), node_socket_remove(), node_socket_toggle_exec(), node_switch_view_exec(), ntree_exec_begin(), ntree_shader_bypass_tagged_bump_nodes(), ntree_shader_copy_branch_displacement(), ntree_shader_groups_expand_inputs(), ntree_shader_groups_flatten(), ntree_shader_has_displacement(), ntree_shader_relink_displacement(), ntree_shader_tag_nodes(), ntree_shader_unlink_hidden_value_sockets(), ntree_socket_add_exec(), ntree_socket_move_exec(), ntree_socket_remove_exec(), ntreeUpdateAllNew(), ntreeUpdateAllUsers(), proj_paint_add_slot(), snode_autoconnect(), special_aftertrans_update__node(), square_roughness_node_insert(), update_mapping_node_inputs_and_properties(), MaterialNode::update_material_nodetree(), update_math_node_single_operand_operators(), update_noise_and_wave_distortion(), update_vector_math_node_add_and_subtract_operators(), update_vector_math_node_average_operator(), update_vector_math_node_cross_product_operator(), update_vector_math_node_dot_product_operator(), update_vector_math_node_normalize_operator(), update_voronoi_node_coloring(), update_voronoi_node_crackle(), and update_voronoi_node_square_distance().

◆ register_undefined_types()

static void register_undefined_types ( )
static

◆ registerCompositNodes()

static void registerCompositNodes ( )
static

Definition at line 4692 of file node.cc.

References register_node_type_cmp_alphaover(), register_node_type_cmp_antialiasing(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_bokehblur(), register_node_type_cmp_bokehimage(), register_node_type_cmp_boxmask(), register_node_type_cmp_brightcontrast(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_colorcorrection(), register_node_type_cmp_combhsva(), register_node_type_cmp_combrgba(), register_node_type_cmp_combycca(), register_node_type_cmp_combyuva(), register_node_type_cmp_composite(), register_node_type_cmp_cornerpin(), register_node_type_cmp_crop(), register_node_type_cmp_cryptomatte(), register_node_type_cmp_cryptomatte_legacy(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_denoise(), register_node_type_cmp_despeckle(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_displace(), register_node_type_cmp_distance_matte(), register_node_type_cmp_doubleedgemask(), register_node_type_cmp_ellipsemask(), register_node_type_cmp_exposure(), register_node_type_cmp_filter(), register_node_type_cmp_flip(), register_node_type_cmp_gamma(), register_node_type_cmp_glare(), register_node_type_cmp_group(), register_node_type_cmp_hue_sat(), register_node_type_cmp_huecorrect(), register_node_type_cmp_idmask(), register_node_type_cmp_image(), register_node_type_cmp_inpaint(), register_node_type_cmp_invert(), register_node_type_cmp_keying(), register_node_type_cmp_keyingscreen(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_range(), register_node_type_cmp_map_value(), register_node_type_cmp_mapuv(), register_node_type_cmp_mask(), register_node_type_cmp_math(), register_node_type_cmp_mix_rgb(), register_node_type_cmp_movieclip(), register_node_type_cmp_moviedistortion(), register_node_type_cmp_normal(), register_node_type_cmp_normalize(), register_node_type_cmp_output_file(), register_node_type_cmp_pixelate(), register_node_type_cmp_planetrackdeform(), register_node_type_cmp_premulkey(), register_node_type_cmp_rgb(), register_node_type_cmp_rgbtobw(), register_node_type_cmp_rlayers(), register_node_type_cmp_rotate(), register_node_type_cmp_scale(), register_node_type_cmp_sephsva(), register_node_type_cmp_seprgba(), register_node_type_cmp_sepycca(), register_node_type_cmp_sepyuva(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_stabilize2d(), register_node_type_cmp_sunbeams(), register_node_type_cmp_switch(), register_node_type_cmp_switch_view(), register_node_type_cmp_texture(), register_node_type_cmp_tonemap(), register_node_type_cmp_trackpos(), register_node_type_cmp_transform(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_value(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), and register_node_type_cmp_zcombine().

Referenced by BKE_node_system_init().

◆ registerFunctionNodes()

static void registerFunctionNodes ( )
static

◆ registerGeometryNodes()

static void registerGeometryNodes ( )
static

Definition at line 4945 of file node.cc.

References register_node_type_geo_align_rotation_to_vector(), register_node_type_geo_attribute_clamp(), register_node_type_geo_attribute_color_ramp(), register_node_type_geo_attribute_combine_xyz(), register_node_type_geo_attribute_compare(), register_node_type_geo_attribute_convert(), register_node_type_geo_attribute_fill(), register_node_type_geo_attribute_map_range(), register_node_type_geo_attribute_math(), register_node_type_geo_attribute_mix(), register_node_type_geo_attribute_proximity(), register_node_type_geo_attribute_randomize(), register_node_type_geo_attribute_remove(), register_node_type_geo_attribute_separate_xyz(), register_node_type_geo_attribute_vector_math(), register_node_type_geo_boolean(), register_node_type_geo_bounding_box(), register_node_type_geo_collection_info(), register_node_type_geo_edge_split(), register_node_type_geo_group(), register_node_type_geo_is_viewport(), register_node_type_geo_join_geometry(), register_node_type_geo_mesh_primitive_circle(), register_node_type_geo_mesh_primitive_cone(), register_node_type_geo_mesh_primitive_cube(), register_node_type_geo_mesh_primitive_cylinder(), register_node_type_geo_mesh_primitive_grid(), register_node_type_geo_mesh_primitive_ico_sphere(), register_node_type_geo_mesh_primitive_line(), register_node_type_geo_mesh_primitive_uv_sphere(), register_node_type_geo_object_info(), register_node_type_geo_point_distribute(), register_node_type_geo_point_instance(), register_node_type_geo_point_rotate(), register_node_type_geo_point_scale(), register_node_type_geo_point_separate(), register_node_type_geo_point_translate(), register_node_type_geo_points_to_volume(), register_node_type_geo_sample_texture(), register_node_type_geo_subdivide(), register_node_type_geo_subdivision_surface(), register_node_type_geo_transform(), register_node_type_geo_triangulate(), and register_node_type_geo_volume_to_mesh().

Referenced by BKE_node_system_init().

◆ registerShaderNodes()

static void registerShaderNodes ( )
static

Definition at line 4798 of file node.cc.

References register_node_type_sh_add_shader(), register_node_type_sh_attribute(), register_node_type_sh_background(), register_node_type_sh_bevel(), register_node_type_sh_blackbody(), register_node_type_sh_brightcontrast(), register_node_type_sh_bsdf_anisotropic(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_hair(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_toon(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_bsdf_velvet(), register_node_type_sh_bump(), register_node_type_sh_camera(), register_node_type_sh_clamp(), register_node_type_sh_combhsv(), register_node_type_sh_combrgb(), register_node_type_sh_combxyz(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_displacement(), register_node_type_sh_eevee_specular(), register_node_type_sh_emission(), register_node_type_sh_fresnel(), register_node_type_sh_gamma(), register_node_type_sh_geometry(), register_node_type_sh_group(), register_node_type_sh_holdout(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_layer_weight(), register_node_type_sh_light_falloff(), register_node_type_sh_light_path(), register_node_type_sh_map_range(), register_node_type_sh_mapping(), register_node_type_sh_math(), register_node_type_sh_mix_rgb(), register_node_type_sh_mix_shader(), register_node_type_sh_normal(), register_node_type_sh_object_info(), register_node_type_sh_output_aov(), register_node_type_sh_output_light(), register_node_type_sh_output_linestyle(), register_node_type_sh_output_material(), register_node_type_sh_output_world(), register_node_type_sh_particle_info(), register_node_type_sh_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_sephsv(), register_node_type_sh_seprgb(), register_node_type_sh_sepxyz(), register_node_type_sh_shadertorgb(), register_node_type_sh_squeeze(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_coord(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_pointdensity(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_tex_white_noise(), register_node_type_sh_uvalongstroke(), register_node_type_sh_uvmap(), register_node_type_sh_valtorgb(), register_node_type_sh_value(), register_node_type_sh_vect_math(), register_node_type_sh_vect_transform(), register_node_type_sh_vector_displacement(), register_node_type_sh_vector_rotate(), register_node_type_sh_vertex_color(), register_node_type_sh_volume_absorption(), register_node_type_sh_volume_principled(), register_node_type_sh_volume_scatter(), register_node_type_sh_wavelength(), and register_node_type_sh_wireframe().

Referenced by BKE_node_system_init().

◆ registerTextureNodes()

static void registerTextureNodes ( )
static

Definition at line 4895 of file node.cc.

References register_node_type_sh_ambient_occlusion(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_hair_info(), register_node_type_sh_normal_map(), register_node_type_sh_script(), register_node_type_sh_tangent(), register_node_type_sh_volume_info(), register_node_type_tex_at(), register_node_type_tex_bricks(), register_node_type_tex_checker(), register_node_type_tex_compose(), register_node_type_tex_coord(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_decompose(), register_node_type_tex_distance(), register_node_type_tex_group(), register_node_type_tex_hue_sat(), register_node_type_tex_image(), register_node_type_tex_invert(), register_node_type_tex_math(), register_node_type_tex_mix_rgb(), register_node_type_tex_output(), register_node_type_tex_proc_blend(), register_node_type_tex_proc_clouds(), register_node_type_tex_proc_distnoise(), register_node_type_tex_proc_magic(), register_node_type_tex_proc_marble(), register_node_type_tex_proc_musgrave(), register_node_type_tex_proc_noise(), register_node_type_tex_proc_stucci(), register_node_type_tex_proc_voronoi(), register_node_type_tex_proc_wood(), register_node_type_tex_rgbtobw(), register_node_type_tex_rotate(), register_node_type_tex_scale(), register_node_type_tex_texture(), register_node_type_tex_translate(), register_node_type_tex_valtonor(), register_node_type_tex_valtorgb(), and register_node_type_tex_viewer().

Referenced by BKE_node_system_init().

◆ socket_id_user_decrement()

static void socket_id_user_decrement ( bNodeSocket sock)
static

◆ socket_id_user_increment()

static void socket_id_user_increment ( bNodeSocket sock)
static

◆ unique_identifier_check()

static bool unique_identifier_check ( void *  arg,
const char *  identifier 
)
static

Definition at line 1390 of file node.cc.

References bNodeSocket::identifier, LISTBASE_FOREACH, and STREQ.

Referenced by make_socket().

◆ unique_socket_template_identifier()

static void unique_socket_template_identifier ( bNodeSocketTemplate list,
bNodeSocketTemplate ntemp,
const char  defname[],
char  delim 
)
static

◆ unique_socket_template_identifier_check()

static bool unique_socket_template_identifier_check ( void *  arg,
const char *  name 
)
static

Definition at line 4495 of file node.cc.

References data, and STREQ.

Referenced by unique_socket_template_identifier().

◆ update_typeinfo()

static void update_typeinfo ( Main bmain,
const struct bContext C,
bNodeTreeType treetype,
bNodeType nodetype,
bNodeSocketType socktype,
bool  unregister 
)
static

◆ write_node_socket()

static void write_node_socket ( BlendWriter writer,
bNodeSocket sock 
)
static

◆ write_node_socket_default_value()

static void write_node_socket_default_value ( BlendWriter writer,
bNodeSocket sock 
)
static

◆ write_node_socket_interface()

static void write_node_socket_interface ( BlendWriter writer,
bNodeSocket sock 
)
static

Variable Documentation

◆ IDType_ID_NT

IDTypeInfo IDType_ID_NT
Initial value:
= {
sizeof(bNodeTree),
"NodeTree",
"node_groups",
0,
nullptr,
nullptr,
nullptr,
}
#define BLT_I18NCONTEXT_ID_NODETREE
#define FILTER_ID_NT
Definition: DNA_ID.h:721
@ INDEX_ID_NT
Definition: DNA_ID.h:797
@ ID_NT
Definition: DNA_ID_enums.h:80
struct bNodeTree bNodeTree
static void ntree_blend_read_lib(BlendLibReader *reader, ID *id)
Definition: node.cc:863
static void ntree_blend_read_data(BlendDataReader *reader, ID *id)
Definition: node.cc:773
static void ntree_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition: node.cc:593
static void ntree_copy_data(Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int flag)
Definition: node.cc:120
static void ntree_blend_read_expand(BlendExpander *expander, ID *id)
Definition: node.cc:936
static void node_foreach_id(ID *id, LibraryForeachIDData *data)
Definition: node.cc:320
static ID * node_owner_get(Main *bmain, ID *id)
Definition: node.cc:373
static void node_foreach_cache(ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data)
Definition: node.cc:347
static void ntree_init_data(ID *id)
Definition: node.cc:114
static void ntree_free_data(ID *id)
Definition: node.cc:229

Definition at line 942 of file node.cc.

◆ LOG

CLG_LogRef LOG = {"bke.node"}
static

◆ node_clipboard

bNodeClipboard node_clipboard = {{nullptr}}
static

◆ NODE_INSTANCE_KEY_BASE

const bNodeInstanceKey NODE_INSTANCE_KEY_BASE = {5381}

◆ NODE_INSTANCE_KEY_NONE

const bNodeInstanceKey NODE_INSTANCE_KEY_NONE = {0}

Definition at line 3909 of file node.cc.

Referenced by draw_nodespace_back_pix(), and node_draw_space().

◆ nodesockettypes_hash

GHash* nodesockettypes_hash = nullptr
static

◆ NodeSocketTypeUndefined

bNodeSocketType NodeSocketTypeUndefined

◆ nodetreetypes_hash

GHash* nodetreetypes_hash = nullptr
static

◆ NodeTreeTypeUndefined

bNodeTreeType NodeTreeTypeUndefined
static

Definition at line 97 of file node.cc.

Referenced by ntree_set_typeinfo(), ntreeIsRegistered(), and register_undefined_types().

◆ nodetypes_hash

GHash* nodetypes_hash = nullptr
static

◆ NodeTypeUndefined

bNodeType NodeTypeUndefined