Blender  V3.3
Public Attributes | List of all members
bNodeSocket Struct Reference

#include <DNA_node_types.h>

Public Attributes

struct bNodeSocketnext
 
struct bNodeSocketprev
 
IDPropertyprop
 
char identifier [64]
 
char name [64]
 
voidstorage
 
short type
 
short flag
 
short limit
 
short in_out
 
struct bNodeSocketTypetypeinfo
 
char idname [64]
 
float locx
 
float locy
 
voiddefault_value
 
short stack_index
 
short stack_type DNA_DEPRECATED
 
char display_shape
 
char attribute_domain
 
short total_inputs
 
char label [64]
 
char description [64]
 
char * default_attribute_name
 
voidcache
 
int own_index DNA_DEPRECATED
 
int to_index DNA_DEPRECATED
 
struct bNodeSocket *groupsock DNA_DEPRECATED
 
struct bNodeLinklink
 
bNodeStack ns DNA_DEPRECATED
 
bNodeSocketRuntimeHandleruntime
 

Detailed Description

Definition at line 92 of file DNA_node_types.h.

Member Data Documentation

◆ attribute_domain

char bNodeSocket::attribute_domain

Definition at line 145 of file DNA_node_types.h.

Referenced by find_output_attributes_to_store().

◆ cache

void* bNodeSocket::cache

Cached data from execution.

Definition at line 162 of file DNA_node_types.h.

Referenced by direct_link_node_socket(), local_merge(), and node_socket_copy().

◆ default_attribute_name

char* bNodeSocket::default_attribute_name

The default attribute name to use for geometry nodes modifier output attribute sockets.

Note
Storing this pointer in every single socket exposes the bad design of using sockets to describe group inputs and outputs. In the future, it should be stored in socket declarations.

Definition at line 159 of file DNA_node_types.h.

Referenced by direct_link_node_socket(), node_socket_copy(), write_node_socket(), and write_node_socket_interface().

◆ default_value

void* bNodeSocket::default_value

Default input value used for unlinked sockets.

Definition at line 134 of file DNA_node_types.h.

Referenced by blender::ed::space_node::attribute_search_exec_fn(), bc_get_cot_from_shader(), bc_get_float_from_shader(), blender::nodes::decl::Float::build(), blender::nodes::decl::Int::build(), blender::nodes::decl::Vector::build(), blender::nodes::decl::Bool::build(), blender::nodes::decl::Color::build(), blender::nodes::decl::String::build(), blender::deg::DepsgraphNodeBuilder::build_nodetree_socket(), blender::deg::DepsgraphRelationBuilder::build_nodetree_socket(), cycles_node_socket_float_value(), cycles_node_socket_rgba_value(), cycles_node_socket_vector_value(), default_paint_slot_color_get(), blender::nodes::SocketRef::default_value(), blender::eevee::DefaultSurfaceNodeTree::DefaultSurfaceNodeTree(), blender::eevee::DefaultWorldNodeTree::DefaultWorldNodeTree(), direct_link_node_socket(), do_version_replace_float_size_with_vector(), do_versions_nodetree_convert_angle(), do_versions_nodetree_image_default_alpha_output(), do_versions_socket_default_value_259(), ED_node_shader_default(), EEVEE_material_default_diffuse_get(), EEVEE_material_default_glossy_get(), EEVEE_shader_default_surface_nodetree(), EEVEE_shader_default_world_nodetree(), expand_node_socket(), blender::nodes::node_shader_normal_map_cc::gpu_shader_normal_map(), gpu_uniformbuffer_link(), id_property_create_from_socket(), lib_link_node_socket(), library_foreach_node_socket(), make_socket_type_bool(), make_socket_type_collection(), make_socket_type_float(), make_socket_type_image(), make_socket_type_int(), make_socket_type_material(), make_socket_type_object(), make_socket_type_rgba(), make_socket_type_string(), make_socket_type_texture(), make_socket_type_vector(), blender::nodes::decl::Float::matches(), blender::nodes::decl::Int::matches(), material_default_surface_init(), blender::eevee::MaterialModule::MaterialModule(), blender::ed::space_node::node_add_collection_exec(), blender::ed::space_node::node_add_file_exec(), blender::ed::space_node::node_add_object_exec(), node_add_socket_from_template(), blender::nodes::node_shader_bsdf_principled_cc::node_shader_gpu_bsdf_principled(), blender::nodes::node_shader_subsurface_scattering_cc::node_shader_gpu_subsurface_scattering(), node_socket_copy(), node_socket_copy_default_value(), node_socket_free(), node_socket_get_static_idname(), node_socket_init_default_value(), node_socket_interface_free(), node_socket_set_typeinfo(), nodeModifySocketType(), ntree_shader_expand_socket_default(), ntree_shader_groups_expand_inputs(), ntree_shader_weight_tree_invert(), MaterialNode::set_alpha(), set_color(), MaterialNode::set_diffuse(), MaterialNode::set_emission(), MaterialNode::set_ior(), blender::io::usd::USDMaterialReader::set_node_input(), MaterialNode::set_opacity(), MaterialNode::set_reflectivity(), MaterialNode::set_specular(), blender::nodes::node_shader_value_cc::sh_node_value_build_multi_function(), socket_id_user_decrement(), socket_id_user_increment(), standard_node_socket_interface_verify_socket(), blender::nodes::decl::Float::update_or_build(), blender::nodes::decl::Int::update_or_build(), blender::nodes::decl::Vector::update_or_build(), version_geometry_nodes_set_position_node_offset(), version_node_socket_duplicate(), and write_node_socket_default_value().

◆ description

char bNodeSocket::description[64]

◆ display_shape

char bNodeSocket::display_shape

◆ DNA_DEPRECATED [1/5]

short stack_type bNodeSocket::DNA_DEPRECATED

Definition at line 140 of file DNA_node_types.h.

◆ DNA_DEPRECATED [2/5]

int own_index bNodeSocket::DNA_DEPRECATED

Group socket identifiers, to find matching pairs after reading files.

Definition at line 168 of file DNA_node_types.h.

◆ DNA_DEPRECATED [3/5]

int to_index bNodeSocket::DNA_DEPRECATED

Definition at line 170 of file DNA_node_types.h.

◆ DNA_DEPRECATED [4/5]

struct bNodeSocket* groupsock bNodeSocket::DNA_DEPRECATED

Definition at line 173 of file DNA_node_types.h.

◆ DNA_DEPRECATED [5/5]

bNodeStack ns bNodeSocket::DNA_DEPRECATED

Custom data for inputs, only UI writes in this.

Definition at line 181 of file DNA_node_types.h.

◆ flag

short bNodeSocket::flag

eNodeSocketFlag

Definition at line 112 of file DNA_node_types.h.

Referenced by blender::compositor::NodeGraph::add_bNodeLink(), blender::ed::space_node::add_existing_group_input_fn(), blender::ed::space_node::add_group_input_node_fn(), cmp_node_image_verify_outputs(), blender::nodes::node_composite_switchview_cc::cmp_node_switch_view_sanitycheck(), blender::nodes::node_composite_switchview_cc::cmp_node_switch_view_update(), blender::compositor::ImageNode::convert_to_operations(), blender::ed::space_node::count_multi_input_socket_links(), do_versions_nodetree_socket_use_flags_2_62(), ED_node_socket_draw(), gpu_uniformbuffer_link(), blender::nodes::node_composite_switchview_cc::init_switch_view(), blender::nodes::SocketRef::is_available(), blender::nodes::InputSocketRef::is_multi_input_socket(), light_emission_node_to_energy(), make_socket(), make_socket_interface(), blender::nodes::SocketDeclaration::matches_common_data(), node_add_socket_from_template(), blender::ed::space_node::node_draw_link(), blender::ed::space_node::node_find_indicated_socket(), node_group_input_update(), blender::ed::space_node::node_has_hidden_sockets(), blender::ed::space_node::node_link_bezier_handles(), blender::ed::space_node::node_link_find_socket(), blender::ed::space_node::node_link_init(), blender::ed::space_node::node_mouse_select(), blender::ed::space_node::node_set_hidden_sockets(), blender::ed::space_node::node_socket_add_replace(), blender::ed::space_node::node_socket_calculate_height(), node_socket_copy_default_value(), blender::ed::space_node::node_socket_deselect(), blender::ed::space_node::node_socket_disconnect(), blender::ed::space_node::node_socket_remove(), blender::ed::space_node::node_socket_select(), blender::ed::space_node::node_socket_toggle(), nodeAddLink(), nodeInternalRelink(), nodeMuteLink(), nodeSetSocketAvailability(), nodeSocketIsHidden(), nodeSocketLinkLimit(), nodeUnMuteLink(), blender::ed::space_node::ntree_socket_add_exec(), blender::ed::space_node::ntree_socket_change_type_exec(), blender::ed::space_node::ntree_socket_remove_exec(), blender::nodes::SocketDeclaration::set_common_flags(), blender::ed::space_node::socket_is_available(), socket_is_used(), update_socket_to_match_interface(), verify_socket_template(), and version_node_join_geometry_for_multi_input_socket().

◆ identifier

char bNodeSocket::identifier[64]

◆ idname

char bNodeSocket::idname[64]

◆ in_out

short bNodeSocket::in_out

◆ label

char bNodeSocket::label[64]

Custom dynamic defined label, MAX_NAME.

Definition at line 150 of file DNA_node_types.h.

Referenced by node_sock_label(), node_sock_label_clear(), and nodeSocketLabel().

◆ limit

short bNodeSocket::limit

Maximum number of links that can connect to the socket. Read via nodeSocketLinkLimit, because the limit might be defined on the socket type, in which case this value does not have any effect. It is necessary to store this in the socket because it is exposed as an RNA property for custom nodes.

Definition at line 119 of file DNA_node_types.h.

Referenced by do_versions_node_group_add_socket_2_56_2(), make_socket(), make_socket_interface(), nodeSocketLinkLimit(), and version_node_join_geometry_for_multi_input_socket().

◆ link

struct bNodeLink* bNodeSocket::link

◆ locx

float bNodeSocket::locx

◆ locy

float bNodeSocket::locy

◆ name

char bNodeSocket::name[64]

◆ next

struct bNodeSocket* bNodeSocket::next

Definition at line 93 of file DNA_node_types.h.

Referenced by blo_do_versions_250(), cmp_node_image_verify_outputs(), blender::nodes::node_composite_output_file_cc::copy_output_file(), count_outputs(), do_versions_node_group_add_socket_2_56_2(), do_versions_nodetree_convert_angle(), do_versions_nodetree_customnodes(), do_versions_nodetree_file_output_layers_2_64_5(), 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::nodes::node_fn_random_value_cc::fn_node_random_value_update(), blender::compositor::Node::get_editor_input_socket(), blender::compositor::Node::get_editor_output_socket(), local_merge(), node_cmp_combsep_color_label(), node_combsep_color_label(), blender::nodes::node_composite_image_cc::node_composit_copy_image(), blender::nodes::node_composite_image_cc::node_composit_copy_rlayers(), blender::nodes::node_composite_scale_cc::node_composite_update_scale(), node_find_linkable_socket(), node_get_stack(), node_group_input_find_socket(), node_group_output_find_socket(), blender::ed::space_node::node_mouse_select(), blender::ed::space_node::node_output_file_move_active_socket_exec(), blender::nodes::node_geo_distribute_points_on_faces_cc::node_point_distribute_points_on_faces_update(), blender::ed::space_node::node_remove_linked(), blender::ed::space_node::node_socket_add_replace(), blender::nodes::node_geo_accumulate_field_cc::node_update(), blender::nodes::node_geo_attribute_capture_cc::node_update(), blender::nodes::node_geo_attribute_domain_size_cc::node_update(), blender::nodes::node_geo_attribute_statistic_cc::node_update(), blender::nodes::node_geo_boolean_cc::node_update(), blender::nodes::node_geo_curve_primitive_arc_cc::node_update(), blender::nodes::node_geo_curve_primitive_circle_cc::node_update(), blender::nodes::node_geo_curve_primitive_line_cc::node_update(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_update(), blender::nodes::node_geo_curve_resample_cc::node_update(), blender::nodes::node_geo_curve_to_points_cc::node_update(), blender::nodes::node_geo_curve_trim_cc::node_update(), blender::nodes::node_geo_field_at_index_cc::node_update(), blender::nodes::node_geo_input_named_attribute_cc::node_update(), blender::nodes::node_geo_interpolate_domain_cc::node_update(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_update(), blender::nodes::node_geo_mesh_primitive_cylinder_cc::node_update(), blender::nodes::node_geo_mesh_primitive_line_cc::node_update(), blender::nodes::node_geo_raycast_cc::node_update(), blender::nodes::node_geo_scale_elements_cc::node_update(), blender::nodes::node_geo_store_named_attribute_cc::node_update(), blender::nodes::node_geo_switch_cc::node_update(), blender::nodes::node_geo_transfer_attribute_cc::node_update(), nodetree_uv_node_recursive(), ntree_exec_begin(), ntree_shader_groups_expand_inputs(), blender::ed::space_node::ntree_socket_add_exec(), blender::ed::space_node::ntree_socket_move_exec(), blender::ed::space_node::ntree_socket_remove_exec(), blender::ed::space_node::ui_node_link_items(), verify_socket_template(), verify_socket_template_list(), version_geometry_nodes_set_position_node_offset(), and version_node_join_geometry_for_multi_input_socket().

◆ prev

struct bNodeSocket * bNodeSocket::prev

◆ prop

IDProperty* bNodeSocket::prop

◆ runtime

bNodeSocketRuntimeHandle* bNodeSocket::runtime

◆ stack_index

short bNodeSocket::stack_index

Local stack index.

Definition at line 138 of file DNA_node_types.h.

Referenced by node_get_socket_stack(), node_init_input_index(), node_init_output_index(), and node_socket_copy().

◆ storage

void* bNodeSocket::storage

◆ total_inputs

short bNodeSocket::total_inputs

◆ type

short bNodeSocket::type

The socket's data type. eNodeSocketDatatype.

Definition at line 110 of file DNA_node_types.h.

Referenced by add_realize_instances_before_socket(), blender::ed::space_node::attribute_search_exec_fn(), blender::nodes::decl::basic_types_can_connect(), blender::ed::space_node::best_socket_output(), blo_do_versions_250(), blender::deg::DepsgraphNodeBuilder::build_nodetree_socket(), blender::deg::DepsgraphRelationBuilder::build_nodetree_socket(), blender::nodes::decl::String::can_connect(), blender::nodes::decl::Shader::can_connect(), blender::nodes::decl::Geometry::can_connect(), cmp_node_image_add_pass_output(), compute_geometry(), default_paint_slot_color_get(), do_versions_material_convert_legacy_blend_mode(), do_versions_node_group_add_socket_2_56_2(), do_versions_socket_default_value_259(), draw_property_for_socket(), ED_node_link_insert(), ED_node_socket_draw(), expand_node_socket(), blender::ed::space_node::gather_socket_link_operations(), blender::ed::space_node::get_main_socket_priority(), gpu_uniformbuffer_link(), id_property_create_from_socket(), id_property_type_matches_socket(), initialize_group_input(), is_group_extension_socket(), lib_link_node_socket(), library_foreach_node_socket(), make_socket(), make_socket_interface(), blender::nodes::decl::Float::matches(), blender::nodes::decl::Int::matches(), blender::nodes::decl::Vector::matches(), blender::nodes::decl::Bool::matches(), blender::nodes::decl::Color::matches(), blender::nodes::decl::String::matches(), blender::nodes::decl::Shader::matches(), blender::nodes::decl::Geometry::matches(), blender::nodes::decl::modify_subtype_except_for_storage(), node_exec_socket_use_stack(), blender::ed::space_node::viewer_linking::node_link_viewer_get_socket(), blender::ed::space_node::node_socket_add_replace(), node_socket_copy_default_value(), blender::ed::space_node::node_socket_draw_nested(), node_socket_get_static_idname(), node_socket_set_typeinfo(), blender::nodes::node_socket_to_custom_data_type(), blender::nodes::node_fn_random_value_cc::node_type_from_other_socket(), blender::nodes::node_geo_accumulate_field_cc::node_type_from_other_socket(), blender::nodes::node_geo_attribute_statistic_cc::node_type_from_other_socket(), blender::nodes::node_shader_map_range_cc::node_type_from_other_socket(), nodeAddStaticSocket(), ntree_shader_expand_socket_default(), ntree_shader_groups_expand_inputs(), blender::io::usd::USDMaterialReader::set_node_input(), setup_stack(), blender::ed::space_node::should_create_drag_link_search_menu(), socket_id_user_decrement(), socket_id_user_increment(), socket_type_has_attribute_toggle(), blender::compositor::SocketBufferNode::SocketBufferNode(), blender::compositor::SocketProxyNode::SocketProxyNode(), standard_node_socket_interface_from_socket(), standard_node_socket_interface_init_socket(), standard_node_socket_interface_verify_socket(), blender::ed::space_node::ui_node_menu_column(), blender::ed::space_node::ui_node_sock_name(), blender::nodes::decl::Float::update_or_build(), blender::nodes::decl::Int::update_or_build(), blender::nodes::decl::Vector::update_or_build(), verify_socket_template(), version_geometry_nodes_set_position_node_offset(), and write_node_socket_default_value().

◆ typeinfo

struct bNodeSocketType* bNodeSocket::typeinfo

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