Blender V4.5
blender::nodes::SocketDeclaration Class Referenceabstract

#include <NOD_node_declaration.hh>

Inherits blender::nodes::ItemDeclaration.

Inherited by blender::nodes::decl::Bool, blender::nodes::decl::Bundle, blender::nodes::decl::Closure, blender::nodes::decl::Color, blender::nodes::decl::Custom, blender::nodes::decl::Extend, blender::nodes::decl::Float, blender::nodes::decl::Geometry, blender::nodes::decl::IDSocketDeclaration, blender::nodes::decl::Int, blender::nodes::decl::Matrix, blender::nodes::decl::Menu, blender::nodes::decl::Rotation, blender::nodes::decl::Shader, blender::nodes::decl::String, and blender::nodes::decl::Vector.

Public Member Functions

 ~SocketDeclaration () override=default
virtual bNodeSocketbuild (bNodeTree &ntree, bNode &node) const =0
virtual bool matches (const bNodeSocket &socket) const =0
virtual bNodeSocketupdate_or_build (bNodeTree &ntree, bNode &node, bNodeSocket &socket) const
virtual bool can_connect (const bNodeSocket &socket) const =0
void make_available (bNode &node) const
const CompositorInputRealizationModecompositor_realization_mode () const
int compositor_domain_priority () const
bool compositor_expects_single_value () const
Public Member Functions inherited from blender::nodes::ItemDeclaration
virtual ~ItemDeclaration ()=default

Public Attributes

std::string name
std::string short_label
std::string identifier
std::string description
std::optional< std::string > translation_context
eNodeSocketInOut in_out
eNodeSocketDatatype socket_type
bool hide_label = false
bool hide_value = false
bool compact = false
bool is_multi_input = false
bool no_mute_links = false
bool is_available = true
bool is_attribute_name = false
bool is_default_link_socket = false
bool align_with_previous_socket = false
bool is_panel_toggle = false
bool is_layer_name = false
int index = -1
InputSocketFieldType input_field_type = InputSocketFieldType::None
OutputFieldDependency output_field_dependency
StructureType structure_type = StructureType::Single
NodeDefaultInputType default_input_type = NodeDefaultInputType::NODE_DEFAULT_INPUT_VALUE
std::unique_ptr< SocketNameRNAsocket_name_rna
std::unique_ptr< CustomSocketDrawFncustom_draw_fn
friend NodeDeclarationBuilder
Public Attributes inherited from blender::nodes::ItemDeclaration
const PanelDeclarationparent = nullptr

Protected Member Functions

void set_common_flags (bNodeSocket &socket) const
bool matches_common_data (const bNodeSocket &socket) const

Friends

class BaseSocketDeclarationBuilder
template<typename SocketDecl>
class SocketDeclarationBuilder

Detailed Description

Describes a single input or output socket. This is subclassed for different socket types.

Definition at line 197 of file NOD_node_declaration.hh.

Constructor & Destructor Documentation

◆ ~SocketDeclaration()

blender::nodes::SocketDeclaration::~SocketDeclaration ( )
overridedefault

Member Function Documentation

◆ build()

◆ can_connect()

◆ compositor_domain_priority()

int blender::nodes::SocketDeclaration::compositor_domain_priority ( ) const

◆ compositor_expects_single_value()

◆ compositor_realization_mode()

◆ make_available()

◆ matches()

◆ matches_common_data()

◆ set_common_flags()

void blender::nodes::SocketDeclaration::set_common_flags ( bNodeSocket & socket) const
protected

Definition at line 280 of file node_declaration.cc.

References compact, bNodeSocket::flag, hide_label, hide_value, is_available, is_multi_input, no_mute_links, SET_FLAG_FROM_TEST, SOCK_COMPACT, SOCK_HIDE_LABEL, SOCK_HIDE_VALUE, SOCK_MULTI_INPUT, SOCK_NO_INTERNAL_LINK, and SOCK_UNAVAIL.

Referenced by blender::nodes::decl::Bool::build(), blender::nodes::decl::Bundle::build(), blender::nodes::decl::Closure::build(), blender::nodes::decl::Color::build(), blender::nodes::decl::Float::build(), blender::nodes::decl::Geometry::build(), blender::nodes::decl::IDSocketDeclaration::build(), blender::nodes::decl::Int::build(), blender::nodes::decl::Matrix::build(), blender::nodes::decl::Menu::build(), blender::nodes::decl::Rotation::build(), blender::nodes::decl::Shader::build(), blender::nodes::decl::String::build(), blender::nodes::decl::Vector::build(), blender::nodes::decl::Bool::update_or_build(), blender::nodes::decl::Bundle::update_or_build(), blender::nodes::decl::Closure::update_or_build(), blender::nodes::decl::Color::update_or_build(), blender::nodes::decl::Custom::update_or_build(), blender::nodes::decl::Float::update_or_build(), blender::nodes::decl::IDSocketDeclaration::update_or_build(), blender::nodes::decl::Int::update_or_build(), blender::nodes::decl::Matrix::update_or_build(), blender::nodes::decl::Menu::update_or_build(), blender::nodes::decl::Rotation::update_or_build(), blender::nodes::decl::String::update_or_build(), and blender::nodes::decl::Vector::update_or_build().

◆ update_or_build()

◆ BaseSocketDeclarationBuilder

friend class BaseSocketDeclarationBuilder
friend

Definition at line 261 of file NOD_node_declaration.hh.

References BaseSocketDeclarationBuilder.

Referenced by BaseSocketDeclarationBuilder.

◆ SocketDeclarationBuilder

template<typename SocketDecl>
friend class SocketDeclarationBuilder
friend

Definition at line 262 of file NOD_node_declaration.hh.

References SocketDeclarationBuilder.

Referenced by SocketDeclarationBuilder.

Member Data Documentation

◆ align_with_previous_socket

bool blender::nodes::SocketDeclaration::align_with_previous_socket = false

Puts this socket on the same line as the previous one in the UI.

Definition at line 218 of file NOD_node_declaration.hh.

Referenced by blender::ed::space_node::add_flat_items_for_socket().

◆ compact

bool blender::nodes::SocketDeclaration::compact = false

Definition at line 211 of file NOD_node_declaration.hh.

Referenced by set_common_flags().

◆ custom_draw_fn

std::unique_ptr<CustomSocketDrawFn> blender::nodes::SocketDeclaration::custom_draw_fn

Draw function that overrides how the socket is drawn for a specific node.

Definition at line 258 of file NOD_node_declaration.hh.

Referenced by blender::ed::space_node::std_node_socket_draw().

◆ default_input_type

NodeDefaultInputType blender::nodes::SocketDeclaration::default_input_type = NodeDefaultInputType::NODE_DEFAULT_INPUT_VALUE

Some input sockets can have non-trivial values in the case when they are unlinked.

Definition at line 249 of file NOD_node_declaration.hh.

Referenced by blender::bke::node_interface::add_interface_socket_from_node().

◆ description

std::string blender::nodes::SocketDeclaration::description

Definition at line 202 of file NOD_node_declaration.hh.

Referenced by blender::bke::node_interface::add_interface_socket_from_node(), blender::nodes::node_composite_alpha_over_cc::cmp_node_alphaover_declare(), blender::nodes::node_composite_antialiasing_cc::cmp_node_antialiasing_declare(), blender::nodes::node_composite_bilateralblur_cc::cmp_node_bilateralblur_declare(), blender::nodes::node_composite_bokehimage_cc::cmp_node_bokehimage_declare(), blender::nodes::node_composite_colorcorrection_cc::cmp_node_colorcorrection_declare(), blender::nodes::node_composite_despeckle_cc::cmp_node_despeckle_declare(), blender::nodes::node_composite_directionalblur_cc::cmp_node_directional_blur_declare(), blender::nodes::node_composite_glare_cc::cmp_node_glare_declare(), blender::nodes::node_composite_inpaint_cc::cmp_node_inpaint_declare(), blender::nodes::node_composite_mask_cc::cmp_node_mask_declare(), blender::nodes::node_composite_pixelate_cc::cmp_node_pixelate_declare(), blender::nodes::node_composite_rgb_curves_cc::cmp_node_rgbcurves_declare(), blender::nodes::node_composite_stabilize2d_cc::cmp_node_stabilize2d_declare(), blender::nodes::node_composite_vec_blur_cc::cmp_node_vec_blur_declare(), blender::nodes::node_composite_zcombine_cc::cmp_node_zcombine_declare(), blender::ed::space_node::create_description_inspection_string(), blender::nodes::node_composite_image_coordinates_cc::node_declare(), blender::nodes::node_composite_image_info_cc::node_declare(), blender::nodes::node_fn_match_string_cc::node_declare(), blender::nodes::node_geo_blur_attribute_cc::node_declare(), blender::nodes::node_geo_bounding_box_cc::node_declare(), blender::nodes::node_geo_collection_info_cc::node_declare(), blender::nodes::node_geo_curve_endpoint_selection_cc::node_declare(), blender::nodes::node_geo_curve_fillet_cc::node_declare(), blender::nodes::node_geo_curve_primitive_arc_cc::node_declare(), blender::nodes::node_geo_curve_primitive_quadratic_bezier_cc::node_declare(), blender::nodes::node_geo_curve_primitive_spiral_cc::node_declare(), blender::nodes::node_geo_curve_primitive_star_cc::node_declare(), blender::nodes::node_geo_curve_spline_parameter_cc::node_declare(), blender::nodes::node_geo_curve_subdivide_cc::node_declare(), blender::nodes::node_geo_curve_topology_curve_of_point_cc::node_declare(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::node_declare(), blender::nodes::node_geo_curves_to_grease_pencil_cc::node_declare(), blender::nodes::node_geo_distribute_points_in_grid_cc::node_declare(), blender::nodes::node_geo_dual_mesh_cc::node_declare(), blender::nodes::node_geo_duplicate_elements_cc::node_declare(), blender::nodes::node_geo_edges_to_face_groups_cc::node_declare(), blender::nodes::node_geo_gizmo_transform_cc::node_declare(), blender::nodes::node_geo_grease_pencil_to_curves_cc::node_declare(), blender::nodes::node_geo_grid_to_mesh_cc::node_declare(), blender::nodes::node_geo_image_info_cc::node_declare(), blender::nodes::node_geo_index_of_nearest_cc::node_declare(), blender::nodes::node_geo_input_curve_handles_cc::node_declare(), blender::nodes::node_geo_input_id_cc::node_declare(), blender::nodes::node_geo_input_instance_bounds_cc::node_declare(), blender::nodes::node_geo_input_mesh_edge_angle_cc::node_declare(), blender::nodes::node_geo_input_mesh_edge_neighbors_cc::node_declare(), blender::nodes::node_geo_input_mesh_edge_vertices_cc::node_declare(), blender::nodes::node_geo_input_mesh_face_area_cc::node_declare(), blender::nodes::node_geo_input_mesh_face_neighbors_cc::node_declare(), blender::nodes::node_geo_input_mesh_island_cc::node_declare(), blender::nodes::node_geo_input_mesh_vertex_neighbors_cc::node_declare(), blender::nodes::node_geo_input_normal_cc::node_declare(), blender::nodes::node_geo_interpolate_curves_cc::node_declare(), blender::nodes::node_geo_mesh_face_group_boundaries_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_cube_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_grid_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_ico_sphere_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_uv_sphere_cc::node_declare(), blender::nodes::node_geo_mesh_to_sdf_grid_cc::node_declare(), blender::nodes::node_geo_mesh_topology_corners_of_edge_cc::node_declare(), blender::nodes::node_geo_mesh_topology_corners_of_face_cc::node_declare(), blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::node_declare(), blender::nodes::node_geo_mesh_topology_edges_of_corner_cc::node_declare(), blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::node_declare(), blender::nodes::node_geo_mesh_topology_face_of_corner_cc::node_declare(), blender::nodes::node_geo_mesh_topology_offset_corner_in_face_cc::node_declare(), blender::nodes::node_geo_mesh_topology_vertex_of_corner_cc::node_declare(), blender::nodes::node_geo_object_info_cc::node_declare(), blender::nodes::node_geo_offset_point_in_curve_cc::node_declare(), blender::nodes::node_geo_points_cc::node_declare(), blender::nodes::node_geo_points_to_curves_cc::node_declare(), blender::nodes::node_geo_proximity_cc::node_declare(), blender::nodes::node_geo_realize_instances_cc::node_declare(), blender::nodes::node_geo_sample_index_cc::node_declare(), blender::nodes::node_geo_sample_nearest_surface_cc::node_declare(), blender::nodes::node_geo_sample_uv_surface_cc::node_declare(), blender::nodes::node_geo_scale_elements_cc::node_declare(), blender::nodes::node_geo_simulation_cc::sim_output_node::node_declare(), blender::nodes::node_geo_split_to_instances_cc::node_declare(), blender::nodes::node_geo_tool_3d_cursor_cc::node_declare(), blender::nodes::node_geo_tool_selection_cc::node_declare(), blender::nodes::node_geo_uv_pack_islands_cc::node_declare(), blender::nodes::node_geo_volume_cube_cc::node_declare(), blender::nodes::node_shader_background_cc::node_declare(), blender::nodes::node_shader_brightness_cc::node_declare(), blender::nodes::node_shader_bsdf_hair_principled_cc::node_declare(), blender::nodes::node_shader_bsdf_metallic_cc::node_declare(), blender::nodes::node_shader_bsdf_principled_cc::node_declare(), blender::nodes::node_shader_bump_cc::node_declare(), blender::nodes::node_shader_displacement_cc::node_declare(), blender::nodes::node_shader_hueSatVal_cc::node_declare(), blender::nodes::node_shader_ies_light_cc::node_declare(), blender::nodes::node_shader_light_falloff_cc::node_declare(), blender::nodes::node_shader_mapping_cc::node_declare(), blender::nodes::node_shader_normal_map_cc::node_declare(), blender::nodes::node_shader_subsurface_scattering_cc::node_declare(), blender::nodes::node_shader_vector_displacement_cc::node_declare(), blender::nodes::node_shader_vector_transform_cc::node_declare(), blender::nodes::node_shader_volume_coefficients_cc::node_declare(), blender::nodes::node_shader_volume_scatter_cc::node_declare(), blender::nodes::node_shader_curves_cc::vec::sh_node_curve_vec_declare(), blender::nodes::node_shader_tex_brick_cc::sh_node_tex_brick_declare(), blender::nodes::node_shader_tex_gabor_cc::sh_node_tex_gabor_declare(), blender::nodes::node_shader_tex_noise_cc::sh_node_tex_noise_declare(), blender::nodes::node_shader_tex_voronoi_cc::sh_node_tex_voronoi_declare(), and blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_declare().

◆ hide_label

◆ hide_value

bool blender::nodes::SocketDeclaration::hide_value = false

Definition at line 210 of file NOD_node_declaration.hh.

Referenced by blender::nodes::node_fn_align_euler_to_vector_cc::node_declare(), blender::nodes::node_fn_rotate_euler_cc::node_declare(), blender::nodes::node_geo_attribute_statistic_cc::node_declare(), blender::nodes::node_geo_curve_reverse_cc::node_declare(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::node_declare(), blender::nodes::node_geo_curves_to_grease_pencil_cc::node_declare(), blender::nodes::node_geo_distribute_points_on_faces_cc::node_declare(), blender::nodes::node_geo_duplicate_elements_cc::node_declare(), blender::nodes::node_geo_edge_paths_to_curves_cc::node_declare(), blender::nodes::node_geo_edge_paths_to_selection_cc::node_declare(), blender::nodes::node_geo_edge_split_cc::node_declare(), blender::nodes::node_geo_edges_to_face_groups_cc::node_declare(), blender::nodes::node_geo_field_average_cc::node_declare(), blender::nodes::node_geo_field_min_and_max_cc::node_declare(), blender::nodes::node_geo_field_variance_cc::node_declare(), blender::nodes::node_geo_flip_faces_cc::node_declare(), blender::nodes::node_geo_foreach_geometry_element_cc::input_node::node_declare(), blender::nodes::node_geo_gizmo_dial_cc::node_declare(), blender::nodes::node_geo_gizmo_linear_cc::node_declare(), blender::nodes::node_geo_grease_pencil_to_curves_cc::node_declare(), blender::nodes::node_geo_index_of_nearest_cc::node_declare(), blender::nodes::node_geo_input_shortest_edge_paths_cc::node_declare(), blender::nodes::node_geo_instances_to_points_cc::node_declare(), blender::nodes::node_geo_merge_layers_cc::node_declare(), blender::nodes::node_geo_mesh_face_group_boundaries_cc::node_declare(), blender::nodes::node_geo_mesh_to_curve_cc::node_declare(), blender::nodes::node_geo_mesh_topology_corners_of_edge_cc::node_declare(), blender::nodes::node_geo_mesh_topology_corners_of_face_cc::node_declare(), blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::node_declare(), blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::node_declare(), blender::nodes::node_geo_points_to_curves_cc::node_declare(), blender::nodes::node_geo_points_to_vertices_cc::node_declare(), blender::nodes::node_geo_proximity_cc::node_declare(), blender::nodes::node_geo_realize_instances_cc::node_declare(), blender::nodes::node_geo_rotate_instances_cc::node_declare(), blender::nodes::node_geo_scale_elements_cc::node_declare(), blender::nodes::node_geo_scale_instances_cc::node_declare(), blender::nodes::node_geo_set_curve_normal_cc::node_declare(), blender::nodes::node_geo_set_curve_radius_cc::node_declare(), blender::nodes::node_geo_set_curve_tilt_cc::node_declare(), blender::nodes::node_geo_set_grease_pencil_color_cc::node_declare(), blender::nodes::node_geo_set_grease_pencil_softness_cc::node_declare(), blender::nodes::node_geo_set_id_cc::node_declare(), blender::nodes::node_geo_set_instance_transform_cc::node_declare(), blender::nodes::node_geo_set_material_cc::node_declare(), blender::nodes::node_geo_set_material_index_cc::node_declare(), blender::nodes::node_geo_set_mesh_normal_cc::node_declare(), blender::nodes::node_geo_set_point_radius_cc::node_declare(), blender::nodes::node_geo_set_position_cc::node_declare(), blender::nodes::node_geo_set_shade_smooth_cc::node_declare(), blender::nodes::node_geo_set_spline_cyclic_cc::node_declare(), blender::nodes::node_geo_set_spline_resolution_cc::node_declare(), blender::nodes::node_geo_sort_elements_cc::node_declare(), blender::nodes::node_geo_split_to_instances_cc::node_declare(), blender::nodes::node_geo_string_join_cc::node_declare(), blender::nodes::node_geo_tool_set_face_set_cc::node_declare(), blender::nodes::node_geo_translate_instances_cc::node_declare(), blender::nodes::node_geo_triangulate_cc::node_declare(), blender::nodes::node_geo_uv_pack_islands_cc::node_declare(), blender::nodes::node_geo_uv_unwrap_cc::node_declare(), blender::nodes::node_geo_warning_cc::node_declare(), blender::nodes::node_shader_ambient_occlusion_cc::node_declare(), blender::nodes::node_shader_bsdf_principled_cc::node_declare(), blender::nodes::node_shader_bump_cc::node_declare(), set_common_flags(), blender::nodes::node_shader_tex_voronoi_cc::sh_node_tex_voronoi_declare(), and blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_declare().

◆ identifier

◆ in_out

◆ index

int blender::nodes::SocketDeclaration::index = -1

Index in the list of inputs or outputs of the node.

Definition at line 224 of file NOD_node_declaration.hh.

◆ input_field_type

◆ is_attribute_name

bool blender::nodes::SocketDeclaration::is_attribute_name = false

◆ is_available

bool blender::nodes::SocketDeclaration::is_available = true

Definition at line 214 of file NOD_node_declaration.hh.

Referenced by set_common_flags().

◆ is_default_link_socket

◆ is_layer_name

bool blender::nodes::SocketDeclaration::is_layer_name = false

Definition at line 221 of file NOD_node_declaration.hh.

◆ is_multi_input

bool blender::nodes::SocketDeclaration::is_multi_input = false

Definition at line 212 of file NOD_node_declaration.hh.

Referenced by set_common_flags().

◆ is_panel_toggle

bool blender::nodes::SocketDeclaration::is_panel_toggle = false

This socket is used as a toggle for the parent panel.

Definition at line 220 of file NOD_node_declaration.hh.

◆ name

std::string blender::nodes::SocketDeclaration::name

◆ no_mute_links

bool blender::nodes::SocketDeclaration::no_mute_links = false

Definition at line 213 of file NOD_node_declaration.hh.

Referenced by set_common_flags().

◆ NodeDeclarationBuilder

friend blender::nodes::SocketDeclaration::NodeDeclarationBuilder

Definition at line 260 of file NOD_node_declaration.hh.

◆ output_field_dependency

◆ short_label

std::string blender::nodes::SocketDeclaration::short_label

◆ socket_name_rna

std::unique_ptr<SocketNameRNA> blender::nodes::SocketDeclaration::socket_name_rna

Property that stores the name of the socket so that it can be modified directly from the node without going to the side-bar.

Definition at line 254 of file NOD_node_declaration.hh.

◆ socket_type

eNodeSocketDatatype blender::nodes::SocketDeclaration::socket_type

Socket type that corresponds to this socket declaration.

Definition at line 208 of file NOD_node_declaration.hh.

◆ structure_type

◆ translation_context


The documentation for this class was generated from the following files: