|
| static void | blender::bke::write_node_socket_default_value (BlendWriter *writer, const bNodeSocket *sock) |
| static void | blender::bke::ntree_set_typeinfo (bNodeTree *ntree, bNodeTreeType *typeinfo) |
| static void | blender::bke::node_socket_set_typeinfo (bNodeTree *ntree, bNodeSocket *sock, bNodeSocketType *typeinfo) |
| static void | blender::bke::node_socket_copy (bNodeSocket *sock_dst, const bNodeSocket *sock_src, const int flag) |
| static void | blender::bke::free_localized_node_groups (bNodeTree *ntree) |
| static bool | blender::bke::socket_id_user_decrement (bNodeSocket *sock) |
| static void | blender::bke::ntree_init_data (ID *id) |
| static void | blender::bke::ntree_copy_data (Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int flag) |
| static void | blender::bke::ntree_free_data (ID *id) |
| static void | blender::bke::library_foreach_node_socket (bNodeSocket *sock, LibraryForeachIDData *data) |
| static void | blender::bke::node_foreach_id (ID *id, LibraryForeachIDData *data) |
| static void | blender::bke::node_foreach_cache (ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data) |
| static void | blender::bke::node_foreach_path (ID *id, BPathForeachPathData *bpath_data) |
| static void | blender::bke::node_foreach_working_space_color (ID *id, const IDTypeForeachColorFunctionCallback &fn) |
| static ID ** | blender::bke::node_owner_pointer_get (ID *id, const bool debug_relationship_assert) |
| static void | blender::bke::forward_compat::update_node_location_legacy (bNodeTree &ntree) |
| static void | blender::bke::forward_compat::write_legacy_properties (bNodeTree &ntree) |
| static void | blender::bke::write_node_socket (BlendWriter *writer, const bNodeSocket *sock) |
| static void | blender::bke::node_blend_write_storage (BlendWriter *writer, bNodeTree *ntree, bNode *node) |
| static void | blender::bke::ntree_blend_write (BlendWriter *writer, ID *id, const void *id_address) |
| static bool | blender::bke::is_node_socket_supported (const bNodeSocket *sock) |
| template<typename T, typename T_404> |
| static void | blender::bke::versioning_internal::direct_link_node_socket_legacy_data_version_do (void **dest_data, void **raw_data, blender::FunctionRef< void(T &dest, T_404 &source)> copy_fn) |
| static void | blender::bke::direct_link_node_socket_default_value (BlendDataReader *reader, bNodeSocket *sock) |
| static void | blender::bke::direct_link_node_socket_storage (BlendDataReader *reader, const bNode *node, bNodeSocket *sock) |
| static void | blender::bke::direct_link_node_socket (BlendDataReader *reader, const bNode *node, bNodeSocket *sock) |
| static void | blender::bke::remove_unsupported_sockets (ListBase *sockets, ListBase *links) |
| static void | blender::bke::node_blend_read_data_storage (BlendDataReader *reader, bNodeTree *ntree, bNode *node) |
| static void | blender::bke::node_update_idname_from_experimental (bNode &node) |
| static void | blender::bke::ntree_blend_read_data (BlendDataReader *reader, ID *id) |
| static void | blender::bke::ntree_blend_read_after_liblink (BlendLibReader *reader, ID *id) |
| static void | blender::bke::node_tree_asset_pre_save (void *asset_ptr, AssetMetaData *) |
| static void | blender::bke::node_tree_asset_on_mark_asset (void *asset_ptr, AssetMetaData *asset_data) |
| static void | blender::bke::node_tree_asset_on_clear_asset (void *asset_ptr, AssetMetaData *asset_data) |
| static void | blender::bke::node_add_sockets_from_type (bNodeTree *ntree, bNode *node, bNodeType *ntype) |
| static void | blender::bke::node_init (const bContext *C, bNodeTree *ntree, bNode *node) |
| static void | blender::bke::node_set_typeinfo (const bContext *C, bNodeTree *ntree, bNode *node, bNodeType *typeinfo) |
| static void | blender::bke::update_typeinfo (Main *bmain, bNodeTreeType *treetype, bNodeType *nodetype, bNodeSocketType *socktype, const bool unregister) |
| static auto & | blender::bke::get_node_tree_type_map () |
| static auto & | blender::bke::get_node_type_map () |
| static auto & | blender::bke::get_node_type_alias_map () |
| static auto & | blender::bke::get_socket_type_map () |
| static void | blender::bke::defer_free_tree_type (bNodeTreeType *tree_type) |
| static void | blender::bke::defer_free_node_type (bNodeType *ntype) |
| static void | blender::bke::defer_free_socket_type (bNodeSocketType *stype) |
| static void | blender::bke::ntree_free_type (void *treetype_v) |
| static void | blender::bke::node_free_type (void *nodetype_v) |
| static void | blender::bke::node_free_socket_type (void *socktype_v) |
| static bNodeSocket * | blender::bke::make_socket (bNodeTree *ntree, bNode *, const int in_out, ListBase *lb, const StringRefNull idname, const StringRefNull identifier, const StringRefNull name) |
| static void | blender::bke::socket_id_user_increment (bNodeSocket *sock) |
| static void | blender::bke::node_socket_free (bNodeSocket *sock, const bool do_id_user) |
| static void | blender::bke::iter_backwards_ex (const bNodeTree *ntree, bNode *node_start, bool(*callback)(bNode *, bNode *, void *), void *userdata, const char recursion_mask) |
| static void * | blender::bke::node_static_value_storage_for (bNode &node, const bNodeSocket &socket) |
| static void * | blender::bke::socket_value_storage (bNodeSocket &socket) |
| static int | blender::bke::node_count_links (const bNodeTree *ntree, const bNodeSocket *socket) |
| static void | blender::bke::adjust_multi_input_indices_after_removed_link (bNodeTree *ntree, const bNodeSocket *sock, const int deleted_index) |
| static bNodeTree * | blender::bke::node_tree_add_tree_do (Main *bmain, std::optional< Library * > owner_library, ID *owner_id, const bool is_embedded, const StringRef name, const StringRef idname) |
| static void | blender::bke::node_preview_init_tree_recursive (Map< bNodeInstanceKey, bNodePreview > &previews, bNodeTree *ntree, bNodeInstanceKey parent_key, const int xsize, const int ysize) |
| static void | blender::bke::collect_used_previews (Map< bNodeInstanceKey, bNodePreview > &previews, bNodeTree *ntree, bNodeInstanceKey parent_key, Set< bNodeInstanceKey > &used) |
| static bool | blender::bke::ntree_contains_tree_exec (const bNodeTree &tree_to_search_in, const bNodeTree &tree_to_search_for, Set< const bNodeTree * > &already_passed) |
| static void | blender::bke::update_socket_declarations (ListBase *sockets, Span< nodes::SocketDeclaration * > declarations) |
| static void | blender::bke::reset_socket_declarations (ListBase *sockets) |
| static bNodeInstanceKey | blender::bke::node_hash_int_str (bNodeInstanceKey hash, const char *str) |
| static Set< int > | blender::bke::get_known_node_types_set () |
| static bool | blender::bke::can_read_node_type (const bNode &node) |
| static void | blender::bke::node_replace_undefined_types (bNode *node) |
| static void | blender::bke::node_type_base_defaults (bNodeType &ntype) |
| static bool | blender::bke::node_poll_default (const bNodeType *, const bNodeTree *, const char **) |
| static bool | blender::bke::node_poll_instance_default (const bNode *node, const bNodeTree *ntree, const char **r_disabled_hint) |
| static int16_t | blender::bke::get_next_auto_legacy_type () |
| static const CPPType * | blender::bke::slow_socket_type_to_geo_nodes_base_cpp_type (const eNodeSocketDatatype type) |
| static void | blender::bke::unique_socket_template_identifier (bNodeSocketTemplate *list, bNodeSocketTemplate *ntemp, const char defname[], const char delim) |
| void | blender::bke::node_node_foreach_id (bNode *node, LibraryForeachIDData *data) |
| void | blender::bke::node_tree_blend_read_data (BlendDataReader *reader, ID *owner_id, bNodeTree *ntree) |
| void | blender::bke::node_update_asset_metadata (bNodeTree &node_tree) |
| StringRefNull | blender::bke::node_socket_sub_type_label (int subtype) |
| void | blender::bke::node_modify_socket_type (bNodeTree &ntree, bNode &node, bNodeSocket &sock, StringRefNull idname) |
| bool | blender::bke::node_is_static_socket_type (const bNodeSocketType &stype) |
| void | blender::bke::node_remove_socket_ex (bNodeTree &ntree, bNode &node, bNodeSocket &sock, bool do_id_user) |
| bNode * | blender::bke::node_find_root_parent (bNode &node) |
| void | blender::bke::node_chain_iterator (const bNodeTree *ntree, const bNode *node_start, bool(*callback)(bNode *, bNode *, void *, const bool), void *userdata, bool reversed) |
| void | blender::bke::node_chain_iterator_backwards (const bNodeTree *ntree, bNode *node_start, bool(*callback)(bNode *, bNode *, void *), void *userdata, int recursion_lvl) |
| void | blender::bke::node_parents_iterator (bNode *node, bool(*callback)(bNode *, void *), void *userdata) |
| bNode * | blender::bke::node_copy_with_mapping (bNodeTree *dst_tree, const bNode &node_src, int flag, std::optional< StringRefNull > dst_unique_name, std::optional< int > dst_unique_identifier, Map< const bNodeSocket *, bNodeSocket * > &new_socket_map, bool allow_duplicate_names=false) |
| void | blender::bke::node_socket_move_default_value (Main &bmain, bNodeTree &tree, bNodeSocket &src, bNodeSocket &dst) |
| void | blender::bke::node_link_set_mute (bNodeTree &ntree, bNodeLink &link, const bool muted) |
| bool | blender::bke::node_link_is_selected (const bNodeLink &link) |
| void | blender::bke::node_internal_relink (bNodeTree &ntree, bNode &node) |
| void | blender::bke::node_position_relative (bNode &from_node, const bNode &to_node, const bNodeSocket *from_sock, const bNodeSocket &to_sock) |
| void | blender::bke::node_position_propagate (bNode &node) |
| bNodeTree * | blender::bke::node_tree_add_tree_embedded (Main *bmain, ID *owner_id, StringRefNull name, StringRefNull idname) |
| bNodeTree * | blender::bke::node_tree_copy_tree_ex (const bNodeTree &ntree, Main *bmain, bool do_id_user) |
| bNodeTree * | blender::bke::node_tree_copy_tree (Main *bmain, const bNodeTree &ntree) |
| bool | blender::bke::node_preview_used (const bNode &node) |
| bNodePreview * | blender::bke::node_preview_verify (Map< bNodeInstanceKey, bNodePreview > &previews, bNodeInstanceKey key, int xsize, int ysize, bool create) |
| void | blender::bke::node_preview_init_tree (bNodeTree *ntree, int xsize, int ysize) |
| void | blender::bke::node_preview_remove_unused (bNodeTree *ntree) |
| void | blender::bke::node_preview_merge_tree (bNodeTree *to_ntree, bNodeTree *from_ntree, bool remove_old) |
| void | blender::bke::node_unlink_node (bNodeTree &ntree, bNode &node) |
| void | blender::bke::node_unlink_attached (bNodeTree *ntree, const bNode *parent) |
| void | blender::bke::node_rebuild_id_vector (bNodeTree &node_tree) |
| void | blender::bke::node_free_node (bNodeTree *tree, bNode &node) |
| void | blender::bke::node_tree_free_local_node (bNodeTree &ntree, bNode &node) |
| void | blender::bke::node_tree_free_tree (bNodeTree &ntree) |
| void | blender::bke::node_tree_node_flag_set (bNodeTree &ntree, int flag, bool enable) |
| void | blender::bke::node_tree_local_merge (Main *bmain, bNodeTree *localtree, bNodeTree *ntree) |
| void | blender::bke::node_set_socket_availability (bNodeTree &ntree, bNodeSocket &sock, bool is_available) |
| void | blender::bke::node_socket_declarations_update (bNode *node) |
| bool | blender::bke::node_declaration_ensure_on_outdated_node (bNodeTree &ntree, bNode &node) |
| bool | blender::bke::node_declaration_ensure (bNodeTree &ntree, bNode &node) |
| void | blender::bke::node_tree_update_all_new (Main &main) |
| void | blender::bke::node_system_init () |
| void | blender::bke::node_system_exit () |
| void | blender::bke::node_tree_remove_layer_n (bNodeTree *ntree, Scene *scene, int layer_index) |
| void | blender::bke::node_tree_blend_write (BlendWriter *writer, bNodeTree *ntree) |
| void | blender::bke::node_tree_set_type (bNodeTree &ntree) |
| bNodeTreeType * | blender::bke::node_tree_type_find (StringRef idname) |
| void | blender::bke::node_tree_type_add (bNodeTreeType &nt) |
| void | blender::bke::node_tree_type_free_link (const bNodeTreeType &nt) |
| bool | blender::bke::node_tree_is_registered (const bNodeTree &ntree) |
| Span< bNodeTreeType * > | blender::bke::node_tree_types_get () |
| bNodeTree * | blender::bke::node_tree_add_tree (Main *bmain, StringRef name, StringRef idname) |
| bNodeTree * | blender::bke::node_tree_add_in_lib (Main *bmain, Library *owner_library, StringRefNull name, StringRefNull idname) |
| void | blender::bke::node_tree_free_embedded_tree (bNodeTree *ntree) |
| void | blender::bke::node_tree_set_output (bNodeTree &ntree) |
| bNodeTree ** | blender::bke::node_tree_ptr_from_id (ID *id) |
| bNodeTree * | blender::bke::node_tree_from_id (ID *id) |
| bNodeTree * | blender::bke::node_tree_localize (bNodeTree *ntree, std::optional< ID * > new_owner_id) |
| bool | blender::bke::node_tree_contains_tree (const bNodeTree &tree_to_search_in, const bNodeTree &tree_to_search_for) |
| void | blender::bke::node_tree_update_all_users (Main *main, ID *id) |
| bNodeType * | blender::bke::node_type_find (StringRef idname) |
| StringRefNull | blender::bke::node_type_find_alias (StringRefNull alias) |
| void | blender::bke::node_register_type (bNodeType &ntype) |
| void | blender::bke::node_unregister_type (bNodeType &ntype) |
| Span< bNodeType * > | blender::bke::node_types_get () |
| void | blender::bke::node_register_alias (bNodeType &nt, StringRef alias) |
| Span< bNodeSocketType * > | blender::bke::node_socket_types_get () |
| bNodeSocketType * | blender::bke::node_socket_type_find (StringRef idname) |
| bNodeSocketType * | blender::bke::node_socket_type_find_static (int type, int subtype=0) |
| void | blender::bke::node_register_socket_type (bNodeSocketType &stype) |
| void | blender::bke::node_unregister_socket_type (bNodeSocketType &stype) |
| bool | blender::bke::node_socket_is_registered (const bNodeSocket &sock) |
| StringRefNull | blender::bke::node_socket_type_label (const bNodeSocketType &stype) |
| bNodeSocket * | blender::bke::node_find_socket (bNode &node, eNodeSocketInOut in_out, StringRef identifier) |
| const bNodeSocket * | blender::bke::node_find_socket (const bNode &node, eNodeSocketInOut in_out, StringRef identifier) |
| void | blender::bke::node_modify_socket_type_static (bNodeTree *ntree, bNode *node, bNodeSocket *sock, int type, int subtype) |
| bNodeSocket * | blender::bke::node_add_socket (bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out, StringRefNull idname, StringRefNull identifier, StringRefNull name) |
| std::optional< StringRefNull > | blender::bke::node_static_socket_type (int type, int subtype, std::optional< int > dimensions=std::nullopt) |
| std::optional< StringRefNull > | blender::bke::node_static_socket_interface_type_new (int type, int subtype, std::optional< int > dimensions=std::nullopt) |
| std::optional< StringRefNull > | blender::bke::node_static_socket_label (int type, int subtype) |
| bNodeSocket * | blender::bke::node_add_static_socket (bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out, int type, int subtype, StringRefNull identifier, StringRefNull name) |
| void | blender::bke::node_remove_socket (bNodeTree &ntree, bNode &node, bNodeSocket &sock) |
| bNode * | blender::bke::node_find_node_by_name (bNodeTree &ntree, StringRefNull name) |
| bNode & | blender::bke::node_find_node (bNodeTree &ntree, bNodeSocket &socket) |
| const bNode & | blender::bke::node_find_node (const bNodeTree &ntree, const bNodeSocket &socket) |
| bNode * | blender::bke::node_find_node_try (bNodeTree &ntree, bNodeSocket &socket) |
| const bNodeTreeInterfaceSocket * | blender::bke::node_find_interface_input_by_identifier (const bNodeTree &ntree, StringRef identifier) |
| bool | blender::bke::node_is_parent_and_child (const bNode &parent, const bNode &child) |
| void | blender::bke::node_unique_name (bNodeTree &ntree, bNode &node) |
| void | blender::bke::node_unique_id (bNodeTree &ntree, bNode &node) |
| bNode * | blender::bke::node_add_node (const bContext *C, bNodeTree &ntree, StringRef idname, std::optional< int > unique_identifier=std::nullopt) |
| bNode * | blender::bke::node_add_static_node (const bContext *C, bNodeTree &ntree, int type) |
| bNodeLink & | blender::bke::node_add_link (bNodeTree &ntree, bNode &fromnode, bNodeSocket &fromsock, bNode &tonode, bNodeSocket &tosock) |
| void | blender::bke::node_remove_link (bNodeTree *ntree, bNodeLink &link) |
| void | blender::bke::node_remove_socket_links (bNodeTree &ntree, bNodeSocket &sock) |
| bool | blender::bke::node_link_is_hidden (const bNodeLink &link) |
| void | blender::bke::node_attach_node (bNodeTree &ntree, bNode &node, bNode &parent) |
| void | blender::bke::node_detach_node (bNodeTree &ntree, bNode &node) |
| void | blender::bke::node_remove_node (Main *bmain, bNodeTree &ntree, bNode &node, bool do_id_user, bool remove_animation=true) |
| int | blender::bke::node_count_socket_links (const bNodeTree &ntree, const bNodeSocket &sock) |
| bNode * | blender::bke::node_get_active (bNodeTree &ntree) |
| bool | blender::bke::node_set_selected (bNode &node, bool select) |
| void | blender::bke::node_clear_active (bNodeTree &ntree) |
| void | blender::bke::node_set_active (bNodeTree &ntree, bNode &node) |
| int | blender::bke::node_socket_link_limit (const bNodeSocket &sock) |
| float2 | blender::bke::node_dimensions_get (const bNode &node) |
| void | blender::bke::node_tag_update_id (bNode &node) |
| void | blender::bke::node_internal_links (bNode &node, bNodeLink **r_links, int *r_len) |
| bNodeInstanceKey | blender::bke::node_instance_key (bNodeInstanceKey parent_key, const bNodeTree *ntree, const bNode *node) |
| bNodeSocket * | blender::bke::node_find_enabled_socket (bNode &node, eNodeSocketInOut in_out, StringRef name) |
| bNodeSocket * | blender::bke::node_find_enabled_input_socket (bNode &node, StringRef name) |
| bNodeSocket * | blender::bke::node_find_enabled_output_socket (bNode &node, StringRef name) |
| std::optional< eCustomDataType > | blender::bke::socket_type_to_custom_data_type (eNodeSocketDatatype type) |
| std::optional< eNodeSocketDatatype > | blender::bke::custom_data_type_to_socket_type (eCustomDataType type) |
| const CPPType * | blender::bke::socket_type_to_geo_nodes_base_cpp_type (eNodeSocketDatatype type) |
| std::optional< eNodeSocketDatatype > | blender::bke::geo_nodes_base_cpp_type_to_socket_type (const CPPType &type) |
| std::optional< VolumeGridType > | blender::bke::socket_type_to_grid_type (eNodeSocketDatatype type) |
| std::optional< eNodeSocketDatatype > | blender::bke::grid_type_to_socket_type (VolumeGridType type) |
| std::string | blender::bke::node_label (const bNodeTree &ntree, const bNode &node) |
| std::optional< StringRefNull > | blender::bke::node_socket_short_label (const bNodeSocket &sock) |
| StringRefNull | blender::bke::node_socket_label (const bNodeSocket &sock) |
| const char * | blender::bke::node_socket_translation_context (const bNodeSocket &sock) |
| NodeColorTag | blender::bke::node_color_tag (const bNode &node) |
| void | blender::bke::node_type_base (bNodeType &ntype, std::string idname, std::optional< int16_t > legacy_type=std::nullopt) |
| void | blender::bke::node_type_base_custom (bNodeType &ntype, StringRefNull idname, StringRefNull name, StringRefNull enum_name, short nclass) |
| void | blender::bke::node_type_socket_templates (bNodeType *ntype, bNodeSocketTemplate *inputs, bNodeSocketTemplate *outputs) |
| void | blender::bke::node_type_size (bNodeType &ntype, int width, int minwidth, int maxwidth) |
| void | blender::bke::node_type_size_preset (bNodeType &ntype, eNodeSizePreset size) |
| void | blender::bke::node_type_storage (bNodeType &ntype, std::optional< StringRefNull > storagename, void(*freefunc)(bNode *node), void(*copyfunc)(bNodeTree *dest_ntree, bNode *dest_node, const bNode *src_node)) |
Utility macro for visiting every node tree in the library data, including local bNodeTree blocks in other IDs. This avoids the need for callback functions and allows executing code in a single inner code block.
Variables:
- nodetree: The actual bNodeTree data block. Check nodetree->idname or nodetree->typeinfo to use only specific types.
- id: The owner of the bNodeTree data block. Same as nodetree if it's a linkable node tree from the library.
Examples:
if (id == nodetree)
printf( "This is a linkable node tree");
if (nodetree->idname == "ShaderNodeTree")
printf( "This is a shader node tree);
if (GS(id) == ID_MA)
printf(" and it's owned by a material");
} FOREACH_NODETREE_END;
#define FOREACH_NODETREE_END
#define FOREACH_NODETREE_BEGIN(bmain, _nodetree, _id)
|
| void | blender::bke::node_tree_iterator_init (NodeTreeIterStore *ntreeiter, Main *bmain) |
| bool | blender::bke::node_tree_iterator_step (NodeTreeIterStore *ntreeiter, bNodeTree **r_nodetree, ID **r_id) |