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

#include <NOD_node_declaration.hh>

Inherits blender::nodes::ItemDeclaration.

Inherited by blender::nodes::decl::Bool, 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

virtual ~SocketDeclaration ()=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 CompositorInputRealizationOptionscompositor_realization_options () 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::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
 
InputSocketFieldType input_field_type = InputSocketFieldType::None
 
OutputFieldDependency output_field_dependency
 
std::unique_ptr< ImplicitInputValueFnimplicit_input_fn
 
std::unique_ptr< SocketNameRNAsocket_name_rna
 
friend NodeDeclarationBuilder
 

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 170 of file NOD_node_declaration.hh.

Constructor & Destructor Documentation

◆ ~SocketDeclaration()

virtual blender::nodes::SocketDeclaration::~SocketDeclaration ( )
virtualdefault

Member Function Documentation

◆ build()

◆ can_connect()

◆ compositor_domain_priority()

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

Definition at line 856 of file node_declaration.cc.

Referenced by blender::nodes::node_composite_blur_cc::cmp_node_blur_declare(), blender::nodes::node_composite_bokehblur_cc::cmp_node_bokehblur_declare(), blender::nodes::node_composite_boxmask_cc::cmp_node_boxmask_declare(), blender::nodes::node_composite_brightness_cc::cmp_node_brightcontrast_declare(), blender::nodes::node_composite_colorcorrection_cc::cmp_node_colorcorrection_declare(), blender::nodes::node_composite_combine_hsva_cc::cmp_node_combhsva_declare(), blender::nodes::node_composite_combine_rgba_cc::cmp_node_combrgba_declare(), blender::nodes::node_composite_combine_ycca_cc::cmp_node_combycca_declare(), blender::nodes::node_composite_combine_yuva_cc::cmp_node_combyuva_declare(), blender::nodes::node_composite_vector_curves_cc::cmp_node_curve_vec_declare(), blender::nodes::node_composite_defocus_cc::cmp_node_defocus_declare(), blender::nodes::node_composite_denoise_cc::cmp_node_denoise_declare(), blender::nodes::node_composite_displace_cc::cmp_node_displace_declare(), blender::nodes::node_composite_double_edge_mask_cc::cmp_node_double_edge_mask_declare(), blender::nodes::node_composite_ellipsemask_cc::cmp_node_ellipsemask_declare(), blender::nodes::node_composite_exposure_cc::cmp_node_exposure_declare(), blender::nodes::node_composite_id_mask_cc::cmp_node_idmask_declare(), blender::nodes::node_composite_keying_cc::cmp_node_keying_declare(), blender::nodes::node_composite_kuwahara_cc::cmp_node_kuwahara_declare(), blender::nodes::node_composite_map_range_cc::cmp_node_map_range_declare(), blender::nodes::node_composite_map_uv_cc::cmp_node_map_uv_declare(), blender::nodes::node_composite_map_value_cc::cmp_node_map_value_declare(), blender::nodes::node_composite_math_cc::cmp_node_math_declare(), blender::nodes::node_composite_normalize_cc::cmp_node_normalize_declare(), blender::nodes::node_composite_posterize_cc::cmp_node_posterize_declare(), blender::nodes::node_composite_scale_cc::cmp_node_scale_declare(), blender::nodes::node_composite_setalpha_cc::cmp_node_setalpha_declare(), blender::nodes::node_composite_vec_blur_cc::cmp_node_vec_blur_declare(), and blender::nodes::node_composite_zcombine_cc::cmp_node_zcombine_declare().

◆ compositor_expects_single_value()

◆ compositor_realization_options()

const CompositorInputRealizationOptions & blender::nodes::SocketDeclaration::compositor_realization_options ( ) const

Definition at line 851 of file node_declaration.cc.

◆ make_available()

◆ matches()

◆ matches_common_data()

◆ set_common_flags()

◆ update_or_build()

Friends And Related Symbol Documentation

◆ BaseSocketDeclarationBuilder

friend class BaseSocketDeclarationBuilder
friend

Definition at line 222 of file NOD_node_declaration.hh.

◆ SocketDeclarationBuilder

template<typename SocketDecl >
friend class SocketDeclarationBuilder
friend

Definition at line 223 of file NOD_node_declaration.hh.

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 191 of file NOD_node_declaration.hh.

Referenced by blender::nodes::BaseSocketDeclarationBuilder::align_with_previous().

◆ compact

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

Definition at line 184 of file NOD_node_declaration.hh.

Referenced by set_common_flags().

◆ description

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

Definition at line 175 of file NOD_node_declaration.hh.

Referenced by blender::nodes::node_composite_rgb_curves_cc::cmp_node_rgbcurves_declare(), blender::ed::space_node::create_description_inspection_string(), blender::nodes::BaseSocketDeclarationBuilder::description(), blender::nodes::node_geo_accumulate_field_cc::node_declare(), blender::nodes::node_geo_blur_attribute_cc::node_declare(), blender::nodes::node_geo_curve_endpoint_selection_cc::node_declare(), blender::nodes::node_geo_curve_primitive_arc_cc::node_declare(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::node_declare(), blender::nodes::node_geo_curve_primitive_circle_cc::node_declare(), blender::nodes::node_geo_curve_primitive_line_cc::node_declare(), blender::nodes::node_geo_curve_primitive_quadratic_bezier_cc::node_declare(), blender::nodes::node_geo_curve_primitive_quadrilateral_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_distribute_points_in_volume_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_dial_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_image_texture_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_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_interpolate_curves_cc::node_declare(), blender::nodes::node_geo_mesh_face_group_boundaries_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_circle_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_cube_cc::node_declare(), blender::nodes::node_geo_mesh_primitive_cylinder_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_line_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_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_separate_geometry_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_uv_unwrap_cc::node_declare(), blender::nodes::node_geo_volume_cube_cc::node_declare(), blender::nodes::node_geo_volume_to_mesh_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_vector_displacement_cc::node_declare(), blender::nodes::node_shader_vector_transform_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_sh_mix_cc::sh_node_mix_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(), 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 183 of file NOD_node_declaration.hh.

Referenced by blender::nodes::node_composite_denoise_cc::cmp_node_denoise_declare(), blender::nodes::BaseSocketDeclarationBuilder::hide_value(), 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_fill_cc::node_declare(), blender::nodes::node_geo_curve_resample_cc::node_declare(), blender::nodes::node_geo_curve_reverse_cc::node_declare(), blender::nodes::node_geo_curve_set_handle_type_cc::node_declare(), blender::nodes::node_geo_curve_spline_type_cc::node_declare(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::node_declare(), blender::nodes::node_geo_curve_trim_cc::node_declare(), blender::nodes::node_geo_curves_to_grease_pencil_cc::node_declare(), blender::nodes::node_geo_delete_geometry_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_extrude_mesh_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_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_by_distance_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_to_points_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_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_separate_geometry_cc::node_declare(), blender::nodes::node_geo_set_curve_handles_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_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_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_store_named_attribute_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::set_default_input_field(), blender::nodes::node_shader_map_range_cc::sh_node_map_range_declare(), and blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_declare().

◆ identifier

std::string blender::nodes::SocketDeclaration::identifier

Definition at line 174 of file NOD_node_declaration.hh.

Referenced by blender::nodes::refresh_node_socket().

◆ implicit_input_fn

std::unique_ptr<ImplicitInputValueFn> blender::nodes::SocketDeclaration::implicit_input_fn

Some input sockets can have non-trivial values in the case when they are unlinked. This callback computes the default input of a values in geometry nodes when nothing is linked.

Definition at line 214 of file NOD_node_declaration.hh.

Referenced by blender::nodes::BaseSocketDeclarationBuilder::implicit_field(), and blender::nodes::set_default_input_field().

◆ in_out

◆ input_field_type

◆ is_attribute_name

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

◆ is_available

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

◆ is_default_link_socket

◆ is_multi_input

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

◆ name

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

◆ no_mute_links

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

◆ NodeDeclarationBuilder

friend blender::nodes::SocketDeclaration::NodeDeclarationBuilder

Definition at line 221 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 219 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 181 of file NOD_node_declaration.hh.

Referenced by blender::nodes::set_default_input_field(), and blender::ed::space_node::ui_node_link_items().

◆ translation_context


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