Blender V4.3
bNodeTree Struct Reference

#include <DNA_node_types.h>

Public Attributes

ID id
 
struct AnimDataadt
 
IDowner_id
 
bNodeTreeTypeHandletypeinfo
 
char idname [64]
 
char * description
 
struct bGPdatagpd
 
float view_center [2]
 
ListBase nodes
 
ListBase links
 
int type
 
int cur_index
 
int flag
 
int chunksize DNA_DEPRECATED
 
int execution_mode DNA_DEPRECATED
 
int precision DNA_DEPRECATED
 
int color_tag
 
int default_group_node_width
 
rctf viewer_border
 
ListBase inputs_legacy DNA_DEPRECATED
 
ListBase inputs_legacy outputs_legacy DNA_DEPRECATED
 
bNodeTreeInterface tree_interface
 
NodeInstanceHashHandlepreviews
 
bNodeInstanceKey active_viewer_key
 
int nested_node_refs_num
 
bNestedNodeRefnested_node_refs
 
struct GeometryNodeAssetTraitsgeometry_node_asset_traits
 
struct PreviewImagepreview
 
bNodeTreeRuntimeHandleruntime
 

Detailed Description

The basis for a Node tree, all links and nodes reside internal here.

Only re-usable node trees are in the library though, materials and textures allocate their own tree struct.

Definition at line 675 of file DNA_node_types.h.

Member Data Documentation

◆ active_viewer_key

bNodeInstanceKey bNodeTree::active_viewer_key

Defines the node tree instance to use for the "active" context, in case multiple different editors are used and make context ambiguous.

Definition at line 742 of file DNA_node_types.h.

Referenced by blender::compositor::NodeGraph::add_bNodeTree(), blender::ed::space_node::draw_nodespace_back_pix(), and ED_node_set_active_viewer_key().

◆ adt

◆ color_tag

int bNodeTree::color_tag

◆ cur_index

int bNodeTree::cur_index

Sockets in groups have unique identifiers, adding new sockets always will increase this counter.

Definition at line 703 of file DNA_node_types.h.

Referenced by do_versions_node_group_add_socket_2_56_2().

◆ default_group_node_width

int bNodeTree::default_group_node_width

Default width of a group node created for this group. May be zero, in which case this value should be ignored.

Definition at line 720 of file DNA_node_types.h.

Referenced by blender::ed::space_node::add_node_group_asset(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_default_group_width_set_exec(), and blender::bke::ntree_init_data().

◆ description

◆ DNA_DEPRECATED [1/5]

int chunksize bNodeTree::DNA_DEPRECATED

Tile size for compositor engine.

Definition at line 707 of file DNA_node_types.h.

◆ DNA_DEPRECATED [2/5]

int execution_mode bNodeTree::DNA_DEPRECATED

Execution mode to use for compositor engine.

Definition at line 709 of file DNA_node_types.h.

◆ DNA_DEPRECATED [3/5]

int precision bNodeTree::DNA_DEPRECATED

Precision used by the GPU execution of the compositor tree.

Definition at line 711 of file DNA_node_types.h.

◆ DNA_DEPRECATED [4/5]

ListBase inputs_legacy bNodeTree::DNA_DEPRECATED

Lists of bNodeSocket to hold default values and own_index. Warning! Don't make links to these sockets, input/output nodes are used for that. These sockets are used only for generating external interfaces.

Definition at line 729 of file DNA_node_types.h.

◆ DNA_DEPRECATED [5/5]

ListBase inputs_legacy outputs_legacy bNodeTree::DNA_DEPRECATED

Definition at line 729 of file DNA_node_types.h.

◆ flag

◆ geometry_node_asset_traits

◆ gpd

struct bGPdata* bNodeTree::gpd

Grease pencil data.

Definition at line 691 of file DNA_node_types.h.

Referenced by ED_annotation_data_get_pointers_direct(), and blender::bke::node_foreach_id().

◆ id

ID bNodeTree::id

Definition at line 676 of file DNA_node_types.h.

Referenced by blender::bke::node_interface::add_interface_socket_from_node(), blender::ed::space_node::add_node_group_asset(), after_liblink_id_embedded_id_process(), animdata_copy_id_action(), BKE_bpath_foreach_path_id(), BKE_id_newptr_and_tag_clear(), BKE_idtype_id_foreach_cache(), BKE_image_walk_all_users(), BKE_main_mesh_legacy_convert_auto_smooth(), blo_do_versions_250(), blo_do_versions_280(), blo_do_versions_pre250(), blender::deg::DepsgraphRelationBuilder::build_light(), blender::deg::DepsgraphRelationBuilder::build_nested_nodetree(), blender::deg::DepsgraphNodeBuilder::build_nodetree(), blender::deg::DepsgraphRelationBuilder::build_nodetree(), buttons_context(), buttons_texture_users_find_nodetree(), blender::ed::space_node::compo_initjob(), blender::nodes::materialx::GroupNodeParser::compute(), deg_graph_clear_id_recalc_flags(), DEG_iterator_ids_step(), do_version_hue_sat_node(), blender::io::usd::dome_light_to_world_material(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), ED_annotation_data_get_pointers_direct(), ED_node_set_active_viewer_key(), ED_node_tag_update_id(), ED_node_tree_push(), ED_node_tree_start(), ED_node_tree_update(), ED_operator_node_editable(), blender::nodes::ensure_geometry_nodes_lazy_function_graph(), blender::animrig::find_related_ids(), blender::bke::free_localized_node_groups(), blender::nodes::socket_items::ops::get_active_node_to_operate_on(), blender::nodes::get_init_socket_fn(), blender::bke::node_field_inferencing::get_node_field_inferencing_interface(), blender::bke::NodeTreeRelations::get_owner_id(), blender::nodes::geo_eval_log::GeoModifierLog::get_tree_log_by_zone_for_node_editor(), GPU_material_from_nodetree(), group_initexec(), image_walk_id_all_users(), blender::nodes::LazyFunctionForForeachGeometryElementZone::initialize_execution_graph(), blender::ed::object::is_smooth_by_angle_modifier(), light_blend_write(), light_copy_data(), linestyle_blend_write(), linestyle_copy_data(), material_blend_write(), material_copy_data(), memfile_undosys_step_decode(), blender::ed::object::modifier_add_asset_exec(), blender::ed::space_node::new_node_tree_exec(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_context(), blender::nodes::node_geo_bake_cc::node_declare(), blender::nodes::node_geo_menu_switch_cc::node_declare(), blender::ed::space_node::node_draw_sockets(), blender::ed::space_node::node_draw_space(), blender::ed::space_node::node_file_output_socket_draw(), blender::ed::space_node::node_foreach_id(), blender::ed::space_node::node_group_add_poll(), blender::ed::space_node::node_group_make_from_nodes(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_group_separate_selected(), node_group_ui_description(), blender::ed::space_node::node_group_ungroup(), blender::ed::space_node::node_id_remap(), blender::bke::node_init(), blender::bke::node_instance_key(), blender::ed::space_node::node_link_item_apply(), blender::ed::space_node::node_mouse_select(), blender::nodes::materialx::NodeParser::node_name(), blender::bke::node_remove_node(), blender::ed::space_node::node_shader_script_update_text_recursive(), blender::ed::space_node::node_socket_color_get(), blender::bke::node_tree_add_tree_do(), blender::bke::node_tree_blend_read_data(), blender::bke::node_tree_blend_write(), blender::bke::node_tree_free_embedded_tree(), blender::bke::node_tree_free_local_node(), blender::bke::node_tree_free_local_tree(), blender::bke::node_tree_free_tree(), blender::bke::node_tree_localize(), blender::ed::space_node::node_update_basis_buttons(), blender::ed::space_node::node_update_basis_socket(), blender::bke::ntree_blend_write(), blender::bke::ntree_copy_data(), blender::bke::ntree_free_data(), ntree_shader_groups_flatten(), ntree_version_245(), paste_material_exec(), proj_paint_add_slot(), blender::ed::geometry::run_node_group_exec(), scene_blend_write(), scene_copy_data(), blender::ed::space_node::search_link_ops_for_asset_metadata(), blender::ed::object::shade_auto_smooth_exec(), texture_blend_write(), texture_copy_data(), texture_nodes_fetch_images_for_pool(), blender::ed::space_node::ui_node_draw_input(), blender::ed::space_node::ui_node_draw_node(), blender::ed::space_node::ui_node_link_items(), uiTemplateNodeLink(), update_mapping_node_inputs_and_properties(), version_principled_bsdf_update_animdata(), world_blend_write(), and world_copy_data().

◆ idname

◆ links

ListBase bNodeTree::links

Definition at line 695 of file DNA_node_types.h.

Referenced by blender::ed::space_node::add_dragged_links_to_tree(), blender::ed::space_node::add_reroute_exec(), blender::bke::adjust_multi_input_indices_after_removed_link(), ambient_occlusion_node_relink(), change_input_socket_to_rotation_type(), change_output_socket_to_rotation_type(), cmp_node_image_verify_outputs(), blender::ed::space_node::displace_links(), displacement_node_insert(), do_versions_material_convert_legacy_blend_mode(), do_versions_nodetree_socket_use_flags_2_62(), find_connected_links(), fix_geometry_nodes_object_info_scale(), flatten_group_do(), Freestyle::BlenderStrokeRenderer::GetStrokeShader(), light_emission_node_to_energy(), blender::ed::space_node::mute_links_exec(), blender::bke::node_add_link(), blender::bke::node_chain_iterator(), blender::bke::node_count_links(), blender::bke::node_count_socket_links(), blender::ed::space_node::node_duplicate_exec(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_group_separate_selected(), blender::ed::space_node::node_group_ungroup(), blender::ed::space_node::node_insert_on_link_flags(), blender::bke::node_internal_relink(), blender::ed::space_node::node_link_cancel(), blender::ed::space_node::node_link_find_socket(), blender::ed::space_node::node_link_init(), blender::bke::node_remove_link(), blender::bke::node_remove_socket_ex(), blender::bke::node_remove_socket_links(), blender::ed::space_node::node_socket_count_links(), blender::ed::space_node::node_swap_links(), blender::bke::node_tree_blend_read_data(), blender::bke::node_tree_blend_write(), node_tree_relink_with_socket_id_map(), blender::bke::node_unlink_node(), blender::bke::ntree_copy_data(), blender::bke::ntree_free_data(), ntree_shader_copy_branch(), ntree_shader_groups_remove_muted_links(), ntree_shader_implicit_closure_cast(), ntree_update_reroute_nodes(), blender::ed::space_node::pick_link(), blender::nodes::refresh_node_socket(), blender::ed::space_node::viewer_linking::remove_links_to_unavailable_viewer_sockets(), blender::bke::node_tree_runtime::update_link_vector(), update_mapping_node_inputs_and_properties(), update_musgrave_node_color_output(), 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(), update_voronoi_node_square_distance(), version_geometry_nodes_extrude_smooth_propagation(), version_geometry_nodes_primitive_uv_maps(), version_geometry_nodes_set_position_node_offset(), version_node_add_link(), version_node_join_geometry_for_multi_input_socket(), version_node_socket_duplicate(), version_refraction_depth_to_thickness_value(), version_replace_texcoord_normal_socket(), version_socket_update_is_used(), version_update_node_input(), versioning_replace_musgrave_texture_node(), versioning_update_noise_texture_node(), and blender::ed::space_node::viewer_linking::view_socket().

◆ nested_node_refs

◆ nested_node_refs_num

int bNodeTree::nested_node_refs_num

Used to maintain stable IDs for a subset of nested nodes. For example, every simulation zone that is in the node tree has a unique entry here.

Definition at line 748 of file DNA_node_types.h.

Referenced by blender::bke::node_tree_blend_read_data(), blender::bke::node_tree_blend_write(), blender::bke::ntree_copy_data(), and timeline_draw_cache().

◆ nodes

ListBase bNodeTree::nodes

Definition at line 695 of file DNA_node_types.h.

Referenced by blender::compositor::NodeGraph::add_proxies_group(), ambient_occlusion_node_relink(), animdata_filter_ds_nodetree(), bc_get_master_shader(), BKE_linestyle_use_textures(), blo_do_versions_250(), buttons_texture_users_find_nodetree(), do_version_ntree_242_2(), do_versions_compositor_render_passes(), do_versions_nodetree_convert_angle(), do_versions_nodetree_customnodes(), do_versions_nodetree_file_output_layers_2_64_5(), do_versions_nodetree_frame_2_64_6(), do_versions_nodetree_image_default_alpha_output(), do_versions_nodetree_image_layer_2_64_5(), do_versions_nodetree_multi_file_output_format_2_62_1(), do_versions_nodetree_multi_file_output_path_2_63_1(), do_versions_nodetree_socket_use_flags_2_62(), blender::io::usd::dome_light_to_world_material(), blender::ed::space_node::draw_nodespace_back_pix(), fix_geometry_nodes_object_info_scale(), flatten_group_do(), blender::bke::free_localized_node_groups(), Freestyle::BlenderStrokeRenderer::GetStrokeShader(), group_copy_inputs(), local_merge(), localize(), localize(), localize(), blender::bke::node_add_node(), blender::bke::node_chain_iterator_backwards(), blender::bke::node_copy_with_mapping(), blender::ed::space_node::node_delete_exec(), blender::ed::space_node::node_delete_reconnect_exec(), blender::bke::node_find_node_by_name(), blender::bke::node_free_node(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_group_separate_selected(), blender::ed::space_node::node_group_ungroup(), blender::ed::space_node::node_group_ungroup_exec(), blender::ed::space_node::node_remove_linked(), blender::ed::space_node::node_socket_add_replace(), blender::bke::node_tree_blend_read_data(), blender::bke::node_tree_localize(), blender::bke::node_tree_node_flag_set(), blender::bke::node_tree_set_output(), blender::bke::node_tree_update_all_new(), blender::bke::node_unique_name(), blender::bke::ntree_blend_read_after_liblink(), blender::bke::ntree_copy_data(), blender::bke::ntree_free_data(), ntree_get_active_iuser(), ntree_shader_copy_branch(), ntree_shader_disconnect_inactive_mix_branches(), ntree_shader_groups_expand_inputs(), ntree_shader_groups_flatten(), ntree_shader_groups_remove_muted_links(), ntree_shader_pruned_unused(), ntree_shader_shader_to_rgba_branches(), ntree_shader_unlink_hidden_value_sockets(), ntree_shader_weight_tree_invert(), ntree_version_241(), ntree_version_242(), ntree_version_245(), ntreeGPUMaterialNodes(), ntreeShaderOutputNode(), ntreeTexCheckCyclics(), blender::bke::tests::IDSubDataTestData::setup(), snapNodes(), blender::ed::transform::special_aftertrans_update__node(), uiTemplateNodeView(), update_mapping_node_inputs_and_properties(), update_math_node_single_operand_operators(), update_musgrave_node_dimensions(), update_noise_and_wave_distortion(), update_noise_node_dimensions(), 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_vector_math_node_operators_enum_mapping(), update_voronoi_node_crackle(), update_voronoi_node_dimensions(), update_voronoi_node_f3_and_f4(), update_voronoi_node_fac_output(), update_voronoi_node_square_distance(), update_wave_node_directions_and_offset(), version_add_group_in_out_node(), version_eevee_output_node_get(), version_geometry_nodes_add_realize_instance_nodes(), version_geometry_nodes_extrude_smooth_propagation(), version_geometry_nodes_primitive_uv_maps(), version_geometry_nodes_replace_transfer_attribute_node(), version_geometry_nodes_set_position_node_offset(), version_geometry_nodes_use_rotation_socket(), version_node_add_empty(), version_node_join_geometry_for_multi_input_socket(), version_node_socket_duplicate(), version_node_tree_socket_id_delim(), version_principled_bsdf_coat(), version_principled_bsdf_emission(), version_principled_bsdf_specular_tint(), version_principled_bsdf_subsurface(), version_principled_bsdf_update_animdata(), version_principled_transmission_roughness(), version_refraction_depth_to_thickness_value(), version_replace_principled_hair_model(), version_replace_velvet_sheen_node(), version_update_node_input(), versioning_node_hue_correct_set_wrappng(), versioning_nodes_dynamic_sockets(), versioning_nodes_dynamic_sockets_2(), versioning_remove_microfacet_sharp_distribution(), versioning_replace_legacy_combined_and_separate_color_nodes(), versioning_replace_legacy_glossy_node(), versioning_replace_legacy_mix_rgb_node(), versioning_replace_musgrave_texture_node(), versioning_replace_splitviewer(), and versioning_update_noise_texture_node().

◆ owner_id

◆ preview

struct PreviewImage* bNodeTree::preview

◆ previews

◆ runtime

bNodeTreeRuntimeHandle* bNodeTree::runtime

Definition at line 756 of file DNA_node_types.h.

Referenced by add_tree_tag(), blender::bke::node_tree_runtime::AllowUsingOutdatedInfo::AllowUsingOutdatedInfo(), blender::ed::sculpt_paint::brush_exit_tex(), blender::deg::DepsgraphNodeBuilder::build_animation_images(), blender::deg::DepsgraphRelationBuilder::build_animation_images(), blender::ed::space_node::compo_startjob(), blender::compositor::TextureBaseOperation::deinit_execution(), do_render_compositor(), blender::ed::space_node::draw_nodetree(), blender::nodes::ensure_geometry_nodes_lazy_function_graph(), blender::ed::space_node::ensure_nodetree_previews(), blender::bke::node_tree_runtime::ensure_topology_cache(), blender::compositor::FullFrameExecutionModel::execute(), blender::ed::space_node::find_nested_node_id_in_root(), flatten_group_do(), blender::nodes::gizmos::foreach_active_gizmo_in_open_node_editor(), blender::bke::node_tree_runtime::get_implicit_origin_nodes(), blender::nodes::LazyFunctionForForeachGeometryElementZone::initialize_execution_graph(), blender::compositor::NodeOperation::is_braked(), blender::compositor::ExecutionSystem::is_breaked(), blender::realtime_compositor::Context::is_canceled(), blender::ed::sculpt_paint::load_tex(), blender::bke::node_find_node(), blender::bke::node_free_node(), blender::ed::space_node::node_group_ungroup(), blender::ed::space_node::node_link_is_gizmo_link(), blender::ed::space_node::node_preview_acquire_ibuf(), blender::bke::node_tree_blend_read_data(), blender::bke::node_unique_id(), node_verify_sockets(), blender::bke::ntree_blend_write(), blender::bke::ntree_copy_data(), blender::bke::ntree_free_data(), blender::bke::ntree_init_data(), ntreeShaderBeginExecTree(), ntreeShaderEndExecTree(), ntreeTexBeginExecTree(), ntreeTexEndExecTree(), ntreeTexExecTree(), paint_brush_exit_tex(), blender::bke::node_tree_runtime::preprocess_geometry_node_tree_for_evaluation(), blender::nodes::set_default_remaining_node_outputs(), texture_copy_data(), blender::bke::node_tree_runtime::topology_cache_is_available(), blender::bke::node_tree_runtime::update_dangling_reroute_nodes(), blender::bke::node_tree_runtime::update_direct_frames_childrens(), blender::bke::node_tree_runtime::update_directly_linked_links_and_sockets(), blender::compositor::NodeOperation::update_draw(), blender::bke::node_tree_runtime::update_group_output_node(), blender::bke::node_tree_runtime::update_internal_link_inputs(), blender::bke::node_tree_runtime::update_link_vector(), blender::bke::node_tree_runtime::update_logically_linked_sockets(), blender::ed::space_node::update_needed_flag(), blender::nodes::update_node_declaration_and_sockets(), blender::bke::node_tree_runtime::update_node_vector(), blender::bke::node_tree_runtime::update_nodes_by_type(), blender::bke::node_tree_runtime::update_panels(), blender::bke::node_tree_runtime::update_root_frames(), blender::bke::NodeTreeMainUpdater::update_rooted(), blender::bke::node_tree_runtime::update_socket_vectors_and_owner_node(), blender::bke::node_tree_runtime::update_sockets_by_identifier(), blender::bke::node_tree_runtime::update_toposort(), blender::render::Context::viewer_output_to_viewer_image(), and blender::bke::node_tree_runtime::AllowUsingOutdatedInfo::~AllowUsingOutdatedInfo().

◆ tree_interface

◆ type

int bNodeTree::type

Definition at line 697 of file DNA_node_types.h.

Referenced by acf_nodetree_rootType_offset(), blender::ed::space_node::add_root_catalogs_draw(), blender::deg::DepsgraphNodeBuilder::build_nodetree(), blender::deg::DepsgraphRelationBuilder::build_nodetree(), blender::ed::space_node::context_path_for_space_node(), blender::ed::space_node::create_dangling_reroute_inspection_string(), do_version_ntree_242_2(), do_versions_nodetree_customnodes(), blender::ed::space_node::draw_nodetree(), ED_node_set_active(), ED_node_set_active_viewer_key(), ED_node_tag_update_id(), ED_node_tree_start(), blender::ed::space_node::viewer_linking::finalize_viewer_link(), blender::ed::object::get_node_group(), image_walk_ntree_all_users(), blender::ed::space_node::node_add_catalog_assets_draw(), blender::ed::space_node::node_add_collection_poll(), blender::ed::space_node::node_add_file_exec(), blender::ed::space_node::node_add_file_poll(), blender::ed::space_node::node_add_group_poll(), blender::ed::space_node::node_add_mask_poll(), blender::ed::space_node::node_add_material_poll(), blender::ed::space_node::node_add_object_poll(), blender::ed::space_node::node_area_listener(), blender::ed::space_node::node_area_refresh(), blender::ed::space_node::node_buts_curvecol(), blender::ed::space_node::node_buts_mix_rgb(), blender::ed::space_node::node_draw_basis(), blender::bke::node_foreach_cache(), blender::bke::node_foreach_path(), blender::bke::node_free_node(), blender::ed::space_node::node_get_execution_time(), blender::ed::space_node::node_get_extra_info(), blender::ed::space_node::node_group_add_poll(), blender::ed::space_node::node_group_drop_poll(), blender::bke::node_group_poll(), blender::ed::space_node::node_is_previewable(), blender::ed::space_node::node_link_is_field_link(), blender::ed::space_node::node_link_is_gizmo_link(), blender::ed::space_node::node_socket_get_tooltip(), blender::bke::node_tree_blend_write(), blender::bke::node_tree_set_output(), blender::nodes::node_fn_compare_cc::node_update(), blender::bke::ntree_free_data(), blender::bke::ntree_set_typeinfo(), ntree_version_241(), ntree_version_242(), ntree_version_245(), blender::bke::node_tree_runtime::preprocess_geometry_node_tree_for_evaluation(), blender::ed::space_node::send_notifiers_after_tree_change(), blender::nodes::node_sh_mix_cc::sh_node_mix_update(), blender::ed::space_node::ui_node_link_items(), blender::ed::viewer_path::update_active_geometry_nodes_viewer(), blender::bke::NodeTreeMainUpdater::update_rooted(), versioning_node_hue_correct_set_wrappng(), versioning_replace_legacy_combined_and_separate_color_nodes(), view3d_geometry_nodes_drop_poll(), blender::ed::space_node::WIDGETGROUP_node_corner_pin_poll(), blender::ed::space_node::WIDGETGROUP_node_crop_poll(), blender::ed::space_node::WIDGETGROUP_node_sbeam_poll(), and blender::ed::space_node::WIDGETGROUP_node_transform_poll().

◆ typeinfo

◆ view_center

float bNodeTree::view_center[2]

Node tree stores its own offset for consistent editor view.

Definition at line 693 of file DNA_node_types.h.

Referenced by ED_node_tree_push(), ED_node_tree_start(), and blender::ed::space_node::node_draw_space().

◆ viewer_border

rctf bNodeTree::viewer_border

The documentation for this struct was generated from the following file: