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()

◆ compositor_expects_single_value()

bool blender::nodes::SocketDeclaration::compositor_expects_single_value ( ) const

◆ compositor_realization_options()

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

◆ make_available()

◆ matches()

◆ matches_common_data()

◆ set_common_flags()

◆ update_or_build()

◆ BaseSocketDeclarationBuilder

friend class BaseSocketDeclarationBuilder
friend

Definition at line 222 of file NOD_node_declaration.hh.

References BaseSocketDeclarationBuilder.

Referenced by BaseSocketDeclarationBuilder.

◆ SocketDeclarationBuilder

template<typename SocketDecl>
friend class SocketDeclarationBuilder
friend

Definition at line 223 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 191 of file NOD_node_declaration.hh.

◆ 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::node_geo_blur_attribute_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_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_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_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_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 183 of file NOD_node_declaration.hh.

Referenced by blender::nodes::node_composite_keying_cc::cmp_node_keying_declare(), 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_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_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_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

◆ 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.

◆ 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

Definition at line 187 of file NOD_node_declaration.hh.

Referenced by set_common_flags().

◆ is_default_link_socket

◆ is_multi_input

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

Definition at line 185 of file NOD_node_declaration.hh.

Referenced by set_common_flags().

◆ name

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

◆ no_mute_links

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

Definition at line 186 of file NOD_node_declaration.hh.

Referenced by set_common_flags().

◆ NodeDeclarationBuilder

friend blender::nodes::SocketDeclaration::NodeDeclarationBuilder

Definition at line 221 of file NOD_node_declaration.hh.

◆ output_field_dependency

OutputFieldDependency blender::nodes::SocketDeclaration::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.

◆ translation_context


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