Blender V4.3
blender::nodes Namespace Reference

Namespaces

namespace  anonymous_attribute_lifetime
 
namespace  decl
 
namespace  derived_node_tree_types
 
namespace  enums
 
namespace  geo_eval_log
 
namespace  gizmos
 
namespace  implicit_field_inputs
 
namespace  inverse_eval
 
namespace  materialx
 
namespace  node_composite_alpha_over_cc
 
namespace  node_composite_antialiasing_cc
 
namespace  node_composite_base_cryptomatte_cc
 
namespace  node_composite_bilateralblur_cc
 
namespace  node_composite_blur_cc
 
namespace  node_composite_bokehblur_cc
 
namespace  node_composite_bokehimage_cc
 
namespace  node_composite_boxmask_cc
 
namespace  node_composite_brightness_cc
 
namespace  node_composite_channel_matte_cc
 
namespace  node_composite_chroma_matte_cc
 
namespace  node_composite_color_matte_cc
 
namespace  node_composite_color_ramp_cc
 
namespace  node_composite_color_spill_cc
 
namespace  node_composite_colorbalance_cc
 
namespace  node_composite_colorcorrection_cc
 
namespace  node_composite_combine_color_cc
 
namespace  node_composite_combine_hsva_cc
 
namespace  node_composite_combine_rgba_cc
 
namespace  node_composite_combine_xyz_cc
 
namespace  node_composite_combine_ycca_cc
 
namespace  node_composite_combine_yuva_cc
 
namespace  node_composite_composite_cc
 
namespace  node_composite_convert_color_space_cc
 
namespace  node_composite_cornerpin_cc
 
namespace  node_composite_crop_cc
 
namespace  node_composite_cryptomatte_cc
 
namespace  node_composite_defocus_cc
 
namespace  node_composite_denoise_cc
 
namespace  node_composite_despeckle_cc
 
namespace  node_composite_diff_matte_cc
 
namespace  node_composite_dilate_cc
 
namespace  node_composite_directionalblur_cc
 
namespace  node_composite_displace_cc
 
namespace  node_composite_distance_matte_cc
 
namespace  node_composite_double_edge_mask_cc
 
namespace  node_composite_ellipsemask_cc
 
namespace  node_composite_exposure_cc
 
namespace  node_composite_file_output_cc
 
namespace  node_composite_filter_cc
 
namespace  node_composite_flip_cc
 
namespace  node_composite_gamma_cc
 
namespace  node_composite_glare_cc
 
namespace  node_composite_hue_sat_val_cc
 
namespace  node_composite_huecorrect_cc
 
namespace  node_composite_id_mask_cc
 
namespace  node_composite_image_cc
 
namespace  node_composite_inpaint_cc
 
namespace  node_composite_invert_cc
 
namespace  node_composite_keying_cc
 
namespace  node_composite_keyingscreen_cc
 
namespace  node_composite_kuwahara_cc
 
namespace  node_composite_legacy_cryptomatte_cc
 
namespace  node_composite_lensdist_cc
 
namespace  node_composite_levels_cc
 
namespace  node_composite_luma_matte_cc
 
namespace  node_composite_map_range_cc
 
namespace  node_composite_map_uv_cc
 
namespace  node_composite_map_value_cc
 
namespace  node_composite_mask_cc
 
namespace  node_composite_math_cc
 
namespace  node_composite_mixrgb_cc
 
namespace  node_composite_movieclip_cc
 
namespace  node_composite_moviedistortion_cc
 
namespace  node_composite_normal_cc
 
namespace  node_composite_normalize_cc
 
namespace  node_composite_pixelate_cc
 
namespace  node_composite_planetrackdeform_cc
 
namespace  node_composite_posterize_cc
 
namespace  node_composite_premulkey_cc
 
namespace  node_composite_render_layer_cc
 
namespace  node_composite_rgb_cc
 
namespace  node_composite_rgb_curves_cc
 
namespace  node_composite_rgb_to_bw_cc
 
namespace  node_composite_rotate_cc
 
namespace  node_composite_scale_cc
 
namespace  node_composite_separate_color_cc
 
namespace  node_composite_separate_hsva_cc
 
namespace  node_composite_separate_rgba_cc
 
namespace  node_composite_separate_xyz_cc
 
namespace  node_composite_separate_ycca_cc
 
namespace  node_composite_separate_yuva_cc
 
namespace  node_composite_setalpha_cc
 
namespace  node_composite_split_cc
 
namespace  node_composite_stabilize2d_cc
 
namespace  node_composite_sunbeams_cc
 
namespace  node_composite_switch_cc
 
namespace  node_composite_switchview_cc
 
namespace  node_composite_texture_cc
 
namespace  node_composite_time_curves_cc
 
namespace  node_composite_tonemap_cc
 
namespace  node_composite_trackpos_cc
 
namespace  node_composite_transform_cc
 
namespace  node_composite_translate_cc
 
namespace  node_composite_value_cc
 
namespace  node_composite_vec_blur_cc
 
namespace  node_composite_vector_curves_cc
 
namespace  node_composite_viewer_cc
 
namespace  node_composite_zcombine_cc
 
namespace  node_fn_align_euler_to_vector_cc
 
namespace  node_fn_align_rotation_to_vector_cc
 
namespace  node_fn_axes_to_rotation_cc
 
namespace  node_fn_axis_angle_to_rotation_cc
 
namespace  node_fn_boolean_math_cc
 
namespace  node_fn_combine_color_cc
 
namespace  node_fn_combine_matrix_cc
 
namespace  node_fn_combine_transform_cc
 
namespace  node_fn_compare_cc
 
namespace  node_fn_euler_to_rotation_cc
 
namespace  node_fn_float_to_int_cc
 
namespace  node_fn_hash_value_cc
 
namespace  node_fn_input_bool_cc
 
namespace  node_fn_input_color_cc
 
namespace  node_fn_input_int_cc
 
namespace  node_fn_input_rotation_cc
 
namespace  node_fn_input_special_characters_cc
 
namespace  node_fn_input_string_cc
 
namespace  node_fn_input_vector_cc
 
namespace  node_fn_integer_math_cc
 
namespace  node_fn_invert_matrix_cc
 
namespace  node_fn_invert_rotation_cc
 
namespace  node_fn_matrix_determinant_cc
 
namespace  node_fn_matrix_multiply_cc
 
namespace  node_fn_project_point_cc
 
namespace  node_fn_quaternion_to_rotation_cc
 
namespace  node_fn_random_value_cc
 
namespace  node_fn_replace_string_cc
 
namespace  node_fn_rotate_euler_cc
 
namespace  node_fn_rotate_rotation_cc
 
namespace  node_fn_rotate_vector_cc
 
namespace  node_fn_rotation_to_axis_angle_cc
 
namespace  node_fn_rotation_to_euler_cc
 
namespace  node_fn_rotation_to_quaternion_cc
 
namespace  node_fn_separate_color_cc
 
namespace  node_fn_separate_matrix_cc
 
namespace  node_fn_separate_transform_cc
 
namespace  node_fn_slice_string_cc
 
namespace  node_fn_string_length_cc
 
namespace  node_fn_transform_direction_cc
 
namespace  node_fn_transform_point_cc
 
namespace  node_fn_transpose_matrix_cc
 
namespace  node_fn_value_to_string_cc
 
namespace  node_geo_accumulate_field_cc
 
namespace  node_geo_attribute_capture_cc
 
namespace  node_geo_attribute_domain_size_cc
 
namespace  node_geo_attribute_statistic_cc
 
namespace  node_geo_bake_cc
 
namespace  node_geo_blur_attribute_cc
 
namespace  node_geo_boolean_cc
 
namespace  node_geo_bounding_box_cc
 
namespace  node_geo_collection_info_cc
 
namespace  node_geo_convex_hull_cc
 
namespace  node_geo_curve_endpoint_selection_cc
 
namespace  node_geo_curve_fill_cc
 
namespace  node_geo_curve_fillet_cc
 
namespace  node_geo_curve_handle_type_selection_cc
 
namespace  node_geo_curve_length_cc
 
namespace  node_geo_curve_primitive_arc_cc
 
namespace  node_geo_curve_primitive_bezier_segment_cc
 
namespace  node_geo_curve_primitive_circle_cc
 
namespace  node_geo_curve_primitive_line_cc
 
namespace  node_geo_curve_primitive_quadratic_bezier_cc
 
namespace  node_geo_curve_primitive_quadrilateral_cc
 
namespace  node_geo_curve_primitive_spiral_cc
 
namespace  node_geo_curve_primitive_star_cc
 
namespace  node_geo_curve_resample_cc
 
namespace  node_geo_curve_reverse_cc
 
namespace  node_geo_curve_sample_cc
 
namespace  node_geo_curve_set_handle_type_cc
 
namespace  node_geo_curve_spline_parameter_cc
 
namespace  node_geo_curve_spline_type_cc
 
namespace  node_geo_curve_subdivide_cc
 
namespace  node_geo_curve_to_mesh_cc
 
namespace  node_geo_curve_to_points_cc
 
namespace  node_geo_curve_topology_curve_of_point_cc
 
namespace  node_geo_curve_topology_points_of_curve_cc
 
namespace  node_geo_curve_trim_cc
 
namespace  node_geo_curves_to_grease_pencil_cc
 
namespace  node_geo_deform_curves_on_surface_cc
 
namespace  node_geo_delete_geometry_cc
 
namespace  node_geo_distribute_points_in_grid_cc
 
namespace  node_geo_distribute_points_in_volume_cc
 
namespace  node_geo_distribute_points_on_faces_cc
 
namespace  node_geo_dual_mesh_cc
 
namespace  node_geo_duplicate_elements_cc
 
namespace  node_geo_edge_paths_to_curves_cc
 
namespace  node_geo_edge_paths_to_selection_cc
 
namespace  node_geo_edge_split_cc
 
namespace  node_geo_edges_to_face_groups_cc
 
namespace  node_geo_evaluate_at_index_cc
 
namespace  node_geo_evaluate_on_domain_cc
 
namespace  node_geo_extrude_mesh_cc
 
namespace  node_geo_flip_faces_cc
 
namespace  node_geo_foreach_geometry_element_cc
 
namespace  node_geo_geometry_to_instance_cc
 
namespace  node_geo_get_named_grid_cc
 
namespace  node_geo_gizmo_dial_cc
 
namespace  node_geo_gizmo_linear_cc
 
namespace  node_geo_gizmo_transform_cc
 
namespace  node_geo_grease_pencil_to_curves_cc
 
namespace  node_geo_grid_to_mesh_cc
 
namespace  node_geo_image_cc
 
namespace  node_geo_image_info_cc
 
namespace  node_geo_image_texture_cc
 
namespace  node_geo_import_obj
 
namespace  node_geo_import_stl
 
namespace  node_geo_index_of_nearest_cc
 
namespace  node_geo_index_switch_cc
 
namespace  node_geo_input_active_camera_cc
 
namespace  node_geo_input_curve_handles_cc
 
namespace  node_geo_input_curve_tilt_cc
 
namespace  node_geo_input_edge_smooth_cc
 
namespace  node_geo_input_face_smooth_cc
 
namespace  node_geo_input_id_cc
 
namespace  node_geo_input_index_cc
 
namespace  node_geo_input_instance_rotation_cc
 
namespace  node_geo_input_instance_scale_cc
 
namespace  node_geo_input_instance_transform_cc
 
namespace  node_geo_input_material_cc
 
namespace  node_geo_input_material_index_cc
 
namespace  node_geo_input_mesh_edge_angle_cc
 
namespace  node_geo_input_mesh_edge_neighbors_cc
 
namespace  node_geo_input_mesh_edge_vertices_cc
 
namespace  node_geo_input_mesh_face_area_cc
 
namespace  node_geo_input_mesh_face_is_planar_cc
 
namespace  node_geo_input_mesh_face_neighbors_cc
 
namespace  node_geo_input_mesh_island_cc
 
namespace  node_geo_input_mesh_vertex_neighbors_cc
 
namespace  node_geo_input_named_attribute_cc
 
namespace  node_geo_input_named_layer_selection__cc
 
namespace  node_geo_input_normal_cc
 
namespace  node_geo_input_position_cc
 
namespace  node_geo_input_radius_cc
 
namespace  node_geo_input_scene_time_cc
 
namespace  node_geo_input_shortest_edge_paths_cc
 
namespace  node_geo_input_spline_cyclic_cc
 
namespace  node_geo_input_spline_length_cc
 
namespace  node_geo_input_spline_resolution_cc
 
namespace  node_geo_input_tangent_cc
 
namespace  node_geo_instance_on_points_cc
 
namespace  node_geo_instances_to_points_cc
 
namespace  node_geo_interpolate_curves_cc
 
namespace  node_geo_is_viewport_cc
 
namespace  node_geo_join_geometry_cc
 
namespace  node_geo_material_replace_cc
 
namespace  node_geo_material_selection_cc
 
namespace  node_geo_menu_switch_cc
 
namespace  node_geo_merge_by_distance_cc
 
namespace  node_geo_merge_layers_cc
 
namespace  node_geo_mesh_face_group_boundaries_cc
 
namespace  node_geo_mesh_primitive_circle_cc
 
namespace  node_geo_mesh_primitive_cone_cc
 
namespace  node_geo_mesh_primitive_cube_cc
 
namespace  node_geo_mesh_primitive_cylinder_cc
 
namespace  node_geo_mesh_primitive_grid_cc
 
namespace  node_geo_mesh_primitive_ico_sphere_cc
 
namespace  node_geo_mesh_primitive_line_cc
 
namespace  node_geo_mesh_primitive_uv_sphere_cc
 
namespace  node_geo_mesh_subdivide_cc
 
namespace  node_geo_mesh_to_curve_cc
 
namespace  node_geo_mesh_to_density_grid_cc
 
namespace  node_geo_mesh_to_points_cc
 
namespace  node_geo_mesh_to_sdf_grid_cc
 
namespace  node_geo_mesh_to_volume_cc
 
namespace  node_geo_mesh_topology_corners_of_edge_cc
 
namespace  node_geo_mesh_topology_corners_of_face_cc
 
namespace  node_geo_mesh_topology_corners_of_vertex_cc
 
namespace  node_geo_mesh_topology_edges_of_corner_cc
 
namespace  node_geo_mesh_topology_edges_of_vertex_cc
 
namespace  node_geo_mesh_topology_face_of_corner_cc
 
namespace  node_geo_mesh_topology_offset_corner_in_face_cc
 
namespace  node_geo_mesh_topology_vertex_of_corner_cc
 
namespace  node_geo_mouse_position_cc
 
namespace  node_geo_object_info_cc
 
namespace  node_geo_offset_point_in_curve_cc
 
namespace  node_geo_points_cc
 
namespace  node_geo_points_to_curves_cc
 
namespace  node_geo_points_to_sdf_grid_cc
 
namespace  node_geo_points_to_vertices_cc
 
namespace  node_geo_points_to_volume_cc
 
namespace  node_geo_proximity_cc
 
namespace  node_geo_raycast_cc
 
namespace  node_geo_realize_instances_cc
 
namespace  node_geo_remove_attribute_cc
 
namespace  node_geo_repeat_cc
 
namespace  node_geo_rotate_instances_cc
 
namespace  node_geo_sample_grid_cc
 
namespace  node_geo_sample_grid_index_cc
 
namespace  node_geo_sample_index_cc
 
namespace  node_geo_sample_nearest_cc
 
namespace  node_geo_sample_nearest_surface_cc
 
namespace  node_geo_sample_uv_surface_cc
 
namespace  node_geo_scale_elements_cc
 
namespace  node_geo_scale_instances_cc
 
namespace  node_geo_sdf_grid_boolean_cc
 
namespace  node_geo_self_object_cc
 
namespace  node_geo_separate_components_cc
 
namespace  node_geo_separate_geometry_cc
 
namespace  node_geo_set_curve_handles_cc
 
namespace  node_geo_set_curve_normal_cc
 
namespace  node_geo_set_curve_radius_cc
 
namespace  node_geo_set_curve_tilt_cc
 
namespace  node_geo_set_geometry_name
 
namespace  node_geo_set_id_cc
 
namespace  node_geo_set_instance_transform_cc
 
namespace  node_geo_set_material_cc
 
namespace  node_geo_set_material_index_cc
 
namespace  node_geo_set_point_radius_cc
 
namespace  node_geo_set_position_cc
 
namespace  node_geo_set_shade_smooth_cc
 
namespace  node_geo_set_spline_cyclic_cc
 
namespace  node_geo_set_spline_resolution_cc
 
namespace  node_geo_simulation_cc
 
namespace  node_geo_sort_elements_cc
 
namespace  node_geo_split_to_instances_cc
 
namespace  node_geo_store_named_attribute_cc
 
namespace  node_geo_store_named_grid_cc
 
namespace  node_geo_string_join_cc
 
namespace  node_geo_string_to_curves_cc
 
namespace  node_geo_subdivision_surface_cc
 
namespace  node_geo_switch_cc
 
namespace  node_geo_tool_3d_cursor_cc
 
namespace  node_geo_tool_active_element_cc
 
namespace  node_geo_tool_face_set_cc
 
namespace  node_geo_tool_selection_cc
 
namespace  node_geo_tool_set_face_set_cc
 
namespace  node_geo_tool_set_selection_cc
 
namespace  node_geo_transform_geometry_cc
 
namespace  node_geo_translate_instances_cc
 
namespace  node_geo_triangulate_cc
 
namespace  node_geo_uv_pack_islands_cc
 
namespace  node_geo_uv_unwrap_cc
 
namespace  node_geo_viewer_cc
 
namespace  node_geo_viewport_transform_cc
 
namespace  node_geo_volume_cube_cc
 
namespace  node_geo_volume_to_mesh_cc
 
namespace  node_geo_warning_cc
 
namespace  node_sh_mix_cc
 
namespace  node_shader_add_shader_cc
 
namespace  node_shader_ambient_occlusion_cc
 
namespace  node_shader_attribute_cc
 
namespace  node_shader_background_cc
 
namespace  node_shader_bevel_cc
 
namespace  node_shader_blackbody_cc
 
namespace  node_shader_brightness_cc
 
namespace  node_shader_bsdf_diffuse_cc
 
namespace  node_shader_bsdf_glass_cc
 
namespace  node_shader_bsdf_glossy_cc
 
namespace  node_shader_bsdf_hair_cc
 
namespace  node_shader_bsdf_hair_principled_cc
 
namespace  node_shader_bsdf_metallic_cc
 
namespace  node_shader_bsdf_principled_cc
 
namespace  node_shader_bsdf_ray_portal_cc
 
namespace  node_shader_bsdf_refraction_cc
 
namespace  node_shader_bsdf_sheen_cc
 
namespace  node_shader_bsdf_toon_cc
 
namespace  node_shader_bsdf_translucent_cc
 
namespace  node_shader_bsdf_transparent_cc
 
namespace  node_shader_bump_cc
 
namespace  node_shader_camera_cc
 
namespace  node_shader_clamp_cc
 
namespace  node_shader_color_ramp_cc
 
namespace  node_shader_combine_color_cc
 
namespace  node_shader_curves_cc
 
namespace  node_shader_displacement_cc
 
namespace  node_shader_eevee_specular_cc
 
namespace  node_shader_emission_cc
 
namespace  node_shader_fresnel_cc
 
namespace  node_shader_gamma_cc
 
namespace  node_shader_geometry_cc
 
namespace  node_shader_hair_info_cc
 
namespace  node_shader_holdout_cc
 
namespace  node_shader_hueSatVal_cc
 
namespace  node_shader_ies_light_cc
 
namespace  node_shader_invert_cc
 
namespace  node_shader_layer_weight_cc
 
namespace  node_shader_light_falloff_cc
 
namespace  node_shader_light_path_cc
 
namespace  node_shader_map_range_cc
 
namespace  node_shader_mapping_cc
 
namespace  node_shader_math_cc
 
namespace  node_shader_mix_rgb_cc
 
namespace  node_shader_mix_shader_cc
 
namespace  node_shader_normal_cc
 
namespace  node_shader_normal_map_cc
 
namespace  node_shader_object_info_cc
 
namespace  node_shader_output_aov_cc
 
namespace  node_shader_output_light_cc
 
namespace  node_shader_output_linestyle_cc
 
namespace  node_shader_output_material_cc
 
namespace  node_shader_output_world_cc
 
namespace  node_shader_particle_info_cc
 
namespace  node_shader_point_info_cc
 
namespace  node_shader_rgb_cc
 
namespace  node_shader_rgb_to_bw_cc
 
namespace  node_shader_script_cc
 
namespace  node_shader_separate_color_cc
 
namespace  node_shader_sepcomb_hsv_cc
 
namespace  node_shader_sepcomb_rgb_cc
 
namespace  node_shader_sepcomb_xyz_cc
 
namespace  node_shader_shader_to_rgb_cc
 
namespace  node_shader_squeeze_cc
 
namespace  node_shader_subsurface_scattering_cc
 
namespace  node_shader_tangent_cc
 
namespace  node_shader_tex_brick_cc
 
namespace  node_shader_tex_checker_cc
 
namespace  node_shader_tex_coord_cc
 
namespace  node_shader_tex_environment_cc
 
namespace  node_shader_tex_gabor_cc
 
namespace  node_shader_tex_gradient_cc
 
namespace  node_shader_tex_image_cc
 
namespace  node_shader_tex_magic_cc
 
namespace  node_shader_tex_noise_cc
 
namespace  node_shader_tex_pointdensity_cc
 
namespace  node_shader_tex_sky_cc
 
namespace  node_shader_tex_voronoi_cc
 
namespace  node_shader_tex_wave_cc
 
namespace  node_shader_tex_white_noise_cc
 
namespace  node_shader_uv_along_stroke_cc
 
namespace  node_shader_uvmap_cc
 
namespace  node_shader_value_cc
 
namespace  node_shader_vector_displacement_cc
 
namespace  node_shader_vector_math_cc
 
namespace  node_shader_vector_rotate_cc
 
namespace  node_shader_vector_transform_cc
 
namespace  node_shader_vertex_color_cc
 
namespace  node_shader_volume_absorption_cc
 
namespace  node_shader_volume_info_cc
 
namespace  node_shader_volume_principled_cc
 
namespace  node_shader_volume_scatter_cc
 
namespace  node_shader_wavelength_cc
 
namespace  node_shader_wireframe_cc
 
namespace  nodes_geo_import_ply
 
namespace  partial_eval
 
namespace  sim_input
 
namespace  sim_output
 
namespace  socket_items
 
namespace  value_elem
 

Classes

struct  BakeDrawContext
 
struct  BakeItemsAccessor
 
struct  BakeNodeBehavior
 
class  BaseSocketDeclarationBuilder
 
struct  BuildGraphParams
 
struct  CaptureAttributeItemsAccessor
 
class  DerivedNodeTree
 
class  DInputSocket
 
class  DNode
 
class  DOutputSocket
 
class  DSocket
 
class  DTreeContext
 
struct  EnumRNAAccessors
 
struct  FieldInferencingInterface
 
struct  FloatMathOperationInfo
 
struct  ForeachElementComponent
 
struct  ForeachElementComponentID
 
struct  ForeachGeometryElementEvalStorage
 
struct  ForeachGeometryElementGenerationItemsAccessor
 
struct  ForeachGeometryElementInputItemsAccessor
 
struct  ForeachGeometryElementMainItemsAccessor
 
class  ForeachGeometryElementNodeExecuteWrapper
 
class  ForeachGeometryElementZoneSideEffectProvider
 
struct  FoundNestedNodeID
 
class  GatherLinkSearchOpParams
 
struct  GeometryNodeLazyFunctionGraphMapping
 
struct  GeometryNodesGroupFunction
 
struct  GeometryNodesLazyFunctionBuilder
 
struct  GeometryNodesLazyFunctionGraphInfo
 
class  GeometryNodesLazyFunctionLogger
 
class  GeometryNodesLazyFunctionSideEffectProvider
 
class  GeoNodeExecParams
 
class  GeoNodesBakeParams
 
struct  GeoNodesCallData
 
struct  GeoNodesLFLocalUserData
 
struct  GeoNodesLFUserData
 
struct  GeoNodesModifierData
 
struct  GeoNodesOperatorData
 
struct  GeoNodesOperatorDepsgraphs
 
struct  GeoNodesSideEffectNodes
 
class  GeoNodesSimulationParams
 
struct  IndexSwitchItemsAccessor
 
struct  InputUsageHint
 
class  ItemDeclaration
 
class  LazyFunctionForAnonymousAttributeSetExtract
 
class  LazyFunctionForAnonymousAttributeSetJoin
 
class  LazyFunctionForBakeInputsUsage
 
class  LazyFunctionForForeachGeometryElementZone
 
class  LazyFunctionForGeometryNode
 
class  LazyFunctionForGizmoInputsUsage
 
class  LazyFunctionForGizmoNode
 
class  LazyFunctionForGroupNode
 
class  LazyFunctionForImplicitInput
 
class  LazyFunctionForIndexSwitchSocketUsage
 
class  LazyFunctionForLogicalOr
 
class  LazyFunctionForMultiFunctionConversion
 
class  LazyFunctionForMultiFunctionNode
 
class  LazyFunctionForMultiInput
 
class  LazyFunctionForMutedNode
 
struct  LazyFunctionForReduceForeachGeometryElement
 
class  LazyFunctionForRepeatZone
 
class  LazyFunctionForRerouteNode
 
class  LazyFunctionForSimulationInputsUsage
 
class  LazyFunctionForSimulationZone
 
class  LazyFunctionForSwitchSocketUsage
 
class  LazyFunctionForUndefinedNode
 
class  LazyFunctionForViewerInputUsage
 
class  LazyFunctionForViewerNode
 
class  LinkSearchOpParams
 
struct  MenuSwitchItemsAccessor
 
class  NodeAttributeFilter
 
class  NodeDeclaration
 
class  NodeDeclarationBuilder
 
struct  NodeExtraInfoParams
 
struct  NodeExtraInfoRow
 
struct  NodeInContext
 
class  NodeMultiFunctionBuilder
 
class  NodeMultiFunctions
 
struct  OutputAttributeInfo
 
struct  OutputAttributeToStore
 
class  PanelDeclaration
 
class  PanelDeclarationBuilder
 
class  RepeatBodyNodeExecuteWrapper
 
struct  RepeatEvalStorage
 
struct  RepeatItemsAccessor
 
class  RepeatZoneSideEffectProvider
 
class  SceneTimeOperation
 
class  ScopedComputeContextTimer
 
class  ScopedNodeTimer
 
class  SeparatorDeclaration
 
struct  SimulationItemsAccessor
 
struct  SimulationZoneBehavior
 
class  SocketDeclaration
 
class  SocketDeclarationBuilder
 
struct  SocketInContext
 
struct  SocketLinkOperation
 
struct  SocketNameRNA
 
struct  ZoneBodyFunction
 
struct  ZoneBuildInfo
 
struct  ZoneFunctionIndices
 

Typedefs

using JoinAttributeSetsCache = Map<Vector<lf::OutputSocket *>, lf::OutputSocket *>
 
using ImplicitInputValueFn = std::function<void(const bNode &node, void *r_value)>
 
using ItemDeclarationPtr = std::unique_ptr<ItemDeclaration>
 
using SocketDeclarationPtr = std::unique_ptr<SocketDeclaration>
 
using PanelDrawButtonsFunction = void (*)(uiLayout *, bContext *, PointerRNA *)
 
using PanelDeclarationPtr = std::unique_ptr<PanelDeclaration>
 

Enumerations

enum class  InputUsageHintType { Never , DependsOnOutput , DynamicSocket }
 
enum class  InputSocketFieldType { None , IsSupported , Implicit }
 
enum class  OutputSocketFieldType { None , FieldSource , DependentField , PartiallyDependent }
 
enum class  CompositorInputRealizationOptions : uint8_t { None = 0 , RealizeOnOperationDomain = (1 << 0) }
 

Functions

static void cmp_node_scene_time_declare (NodeDeclarationBuilder &b)
 
static NodeOperationget_compositor_operation (Context &context, DNode node)
 
bool get_bake_draw_context (const bContext *C, const bNode &node, BakeDrawContext &r_ctx)
 
std::string get_baked_string (const BakeDrawContext &ctx)
 
std::optional< std::string > get_bake_state_string (const BakeDrawContext &ctx)
 
void draw_common_bake_settings (bContext *C, BakeDrawContext &ctx, uiLayout *layout)
 
void draw_bake_button_row (const BakeDrawContext &ctx, uiLayout *layout, bool is_in_sidebar=false)
 
bool check_tool_context_and_error (GeoNodeExecParams &params)
 
void search_link_ops_for_tool_node (GatherLinkSearchOpParams &params)
 
void search_link_ops_for_volume_grid_node (GatherLinkSearchOpParams &params)
 
void search_link_ops_for_import_node (GatherLinkSearchOpParams &params)
 
bool custom_data_type_supports_grids (const eCustomDataType data_type)
 
const EnumPropertyItemgrid_custom_data_type_items_filter_fn (bContext *, PointerRNA *, PropertyRNA *, bool *r_free)
 
const EnumPropertyItemgrid_socket_type_items_filter_fn (bContext *, PointerRNA *, PropertyRNA *, bool *r_free)
 
void node_geo_exec_with_missing_openvdb (GeoNodeExecParams &params)
 
void get_closest_in_bvhtree (BVHTreeFromMesh &tree_data, const VArray< float3 > &positions, const IndexMask &mask, MutableSpan< int > r_indices, MutableSpan< float > r_distances_sq, MutableSpan< float3 > r_positions)
 
int apply_offset_in_cyclic_range (IndexRange range, int start_index, int offset)
 
void mix_baked_data_item (eNodeSocketDatatype socket_type, void *prev, const void *next, const float factor)
 
void draw_data_blocks (const bContext *C, uiLayout *layout, PointerRNA &bake_rna)
 
static void draw_bake_data_block_list_item (uiList *, const bContext *, uiLayout *layout, PointerRNA *, PointerRNA *itemptr, int, PointerRNA *, const char *, int, int)
 
std::unique_ptr< LazyFunctionget_bake_lazy_function (const bNode &node, GeometryNodesLazyFunctionGraphInfo &lf_graph_info)
 
static void register_node_type_geo_group ()
 
std::unique_ptr< LazyFunctionget_index_switch_node_lazy_function (const bNode &node, GeometryNodesLazyFunctionGraphInfo &lf_graph_info)
 
std::unique_ptr< LazyFunctionget_menu_switch_node_lazy_function (const bNode &node, GeometryNodesLazyFunctionGraphInfo &lf_graph_info)
 
std::unique_ptr< LazyFunctionget_menu_switch_node_socket_usage_lazy_function (const bNode &node)
 
std::unique_ptr< LazyFunctionget_simulation_input_lazy_function (const bNodeTree &node_tree, const bNode &node, GeometryNodesLazyFunctionGraphInfo &own_lf_graph_info)
 
std::unique_ptr< LazyFunctionget_simulation_output_lazy_function (const bNode &node, GeometryNodesLazyFunctionGraphInfo &own_lf_graph_info)
 
std::unique_ptr< LazyFunctionget_switch_node_lazy_function (const bNode &node)
 
std::unique_ptr< LazyFunctionget_warning_node_lazy_function (const bNode &node)
 
static const DTreeContextfind_active_context_recursive (const DTreeContext *context)
 
static dot::Clusterget_dot_cluster_for_context (dot::DirectedGraph &digraph, const DTreeContext *context, Map< const DTreeContext *, dot::Cluster * > &dot_clusters)
 
static void add_used_ids_from_sockets (const ListBase &sockets, Set< ID * > &ids)
 
static bool node_needs_own_transform_relation (const bNode &node)
 
static void process_nodes_for_depsgraph (const bNodeTree &tree, Set< ID * > &ids, bool &r_needs_own_transform_relation, bool &r_needs_scene_camera_relation, Set< const bNodeTree * > &checked_groups)
 
void find_node_tree_dependencies (const bNodeTree &tree, Set< ID * > &r_ids, bool &r_needs_own_transform_relation, bool &r_needs_scene_camera_relation)
 
StringRef input_use_attribute_suffix ()
 
StringRef input_attribute_name_suffix ()
 
bool socket_type_has_attribute_toggle (const eNodeSocketDatatype type)
 
bool input_has_attribute_toggle (const bNodeTree &node_tree, const int socket_index)
 
static void id_property_int_update_enum_items (const bNodeSocketValueMenu *value, IDPropertyUIDataInt *ui_data)
 
static std::unique_ptr< IDProperty, bke::idprop::IDPropertyDeleterid_name_or_value_prop (const StringRefNull identifier, ID *id, const std::optional< ID_Type > id_type, const bool use_name_for_ids)
 
std::unique_ptr< IDProperty, bke::idprop::IDPropertyDeleterid_property_create_from_socket (const bNodeTreeInterfaceSocket &socket, const bool use_name_for_ids)
 
static bool old_id_property_type_matches_socket_convert_to_new_int (const IDProperty &old_property, IDProperty *new_property)
 
static bool old_id_property_type_matches_socket_convert_to_new_float_vec (const IDProperty &old_property, IDProperty *new_property, const int len)
 
static bool old_id_property_type_matches_socket_convert_to_new_string (const IDProperty &old_property, IDProperty *new_property)
 
static bool old_id_property_type_matches_socket_convert_to_new (const bNodeTreeInterfaceSocket &socket, const IDProperty &old_property, IDProperty *new_property, const bool use_name_for_ids)
 
bool id_property_type_matches_socket (const bNodeTreeInterfaceSocket &socket, const IDProperty &property, const bool use_name_for_ids)
 
static void init_socket_cpp_value_from_property (const IDProperty &property, const eNodeSocketDatatype socket_value_type, void *r_value)
 
std::optional< StringRefinput_attribute_name_get (const IDProperty &props, const bNodeTreeInterfaceSocket &io_input)
 
static void initialize_group_input (const bNodeTree &tree, const IDProperty *properties, const int input_index, void *r_value)
 
static MultiValueMap< bke::AttrDomain, OutputAttributeInfofind_output_attributes_to_store (const bNodeTree &tree, const IDProperty *properties, Span< GMutablePointer > output_values)
 
static Vector< OutputAttributeToStorecompute_attributes_to_store (const bke::GeometrySet &geometry, const MultiValueMap< bke::AttrDomain, OutputAttributeInfo > &outputs_by_domain, const bool do_instances)
 
static void store_computed_output_attributes (bke::GeometrySet &geometry, const Span< OutputAttributeToStore > attributes_to_store)
 
static void store_output_attributes (bke::GeometrySet &geometry, const bNodeTree &tree, const IDProperty *properties, Span< GMutablePointer > output_values)
 
bke::GeometrySet execute_geometry_nodes_on_geometry (const bNodeTree &btree, const IDProperty *properties, const ComputeContext &base_compute_context, GeoNodesCallData &call_data, bke::GeometrySet input_geometry)
 
void update_input_properties_from_node_tree (const bNodeTree &tree, const IDProperty *old_properties, IDProperty &properties, const bool use_name_for_ids)
 
void update_output_properties_from_node_tree (const bNodeTree &tree, const IDProperty *old_properties, IDProperty &properties)
 
static const CPPTypeget_socket_cpp_type (const bke::bNodeSocketType &typeinfo)
 
static const CPPTypeget_socket_cpp_type (const bNodeSocket &socket)
 
static const CPPTypeget_vector_type (const CPPType &type)
 
static void lazy_function_interface_from_node (const bNode &node, Vector< lf::Input > &r_inputs, Vector< lf::Output > &r_outputs, MutableSpan< int > r_lf_index_by_bsocket)
 
static void set_default_value_for_output_socket (lf::Params &params, const int lf_index, const bNodeSocket &bsocket)
 
void set_default_remaining_node_outputs (lf::Params &params, const bNode &node)
 
std::string make_anonymous_attribute_socket_inspection_string (const bNodeSocket &socket)
 
std::string make_anonymous_attribute_socket_inspection_string (StringRef node_name, StringRef socket_name)
 
static void execute_multi_function_on_value_variant__single (const MultiFunction &fn, const Span< SocketValueVariant * > input_values, const Span< SocketValueVariant * > output_values)
 
static void execute_multi_function_on_value_variant__field (const MultiFunction &fn, const std::shared_ptr< MultiFunction > &owned_fn, const Span< SocketValueVariant * > input_values, const Span< SocketValueVariant * > output_values)
 
static void execute_multi_function_on_value_variant (const MultiFunction &fn, const std::shared_ptr< MultiFunction > &owned_fn, const Span< SocketValueVariant * > input_values, const Span< SocketValueVariant * > output_values)
 
static bool gizmo_is_used (const GeoNodesLFUserData &user_data, const lf::FunctionNode &lf_gizmo_node)
 
static bool should_log_socket_values_for_context (const GeoNodesLFUserData &user_data, const ComputeContextHash hash)
 
static GMutablePointer get_socket_default_value (LinearAllocator<> &allocator, const bNodeSocket &bsocket)
 
static bool ignore_zone_bsocket (const bNodeSocket &bsocket)
 
static void initialize_zone_wrapper (const bNodeTreeZone &zone, ZoneBuildInfo &zone_info, const ZoneBodyFunction &body_fn, Vector< lf::Input > &r_inputs, Vector< lf::Output > &r_outputs)
 
static std::string zone_wrapper_input_name (const ZoneBuildInfo &zone_info, const bNodeTreeZone &zone, const Span< lf::Input > inputs, const int lf_socket_i)
 
static std::string zone_wrapper_output_name (const ZoneBuildInfo &zone_info, const bNodeTreeZone &zone, const Span< lf::Output > outputs, const int lf_socket_i)
 
static std::optional< AttrDomain > get_foreach_attribute_propagation_target_domain (const GeometryComponent::Type component_type)
 
const GeometryNodesLazyFunctionGraphInfoensure_geometry_nodes_lazy_function_graph (const bNodeTree &btree)
 
std::optional< FoundNestedNodeIDfind_nested_node_id (const GeoNodesLFUserData &user_data, const int node_id)
 
static const IDget_only_evaluated_id (const Depsgraph &depsgraph, const ID &id_orig)
 
const FloatMathOperationInfoget_float_math_operation_info (const int operation)
 
const FloatMathOperationInfoget_float_compare_operation_info (const int operation)
 
const FloatMathOperationInfoget_float3_math_operation_info (const int operation)
 
static std::function< ID *(const bNode &node)> get_default_id_getter (const bNodeTreeInterface &tree_interface, const bNodeTreeInterfaceSocket &io_socket)
 
static std::function< void(bNode &node, bNodeSocket &socket, const char *data_path)> get_init_socket_fn (const bNodeTreeInterface &interface, const bNodeTreeInterfaceSocket &io_socket)
 
static SocketDeclarationPtr declaration_for_interface_socket (const bNodeTree &ntree, const bNodeTreeInterfaceSocket &io_socket, const eNodeSocketInOut in_out)
 
static int count_panel_declaration_children (const bNodeTreeInterfacePanel &io_panel)
 
static PanelDeclarationPtr declaration_for_interface_panel (const bNodeTree &, const bNodeTreeInterfacePanel &io_panel)
 
static void set_default_input_field (const bNodeTreeInterfaceSocket &input, SocketDeclaration &decl)
 
void node_group_declare (NodeDeclarationBuilder &b)
 
static void group_input_declare (NodeDeclarationBuilder &b)
 
static void group_output_declare (NodeDeclarationBuilder &b)
 
static bool group_input_insert_link (bNodeTree *ntree, bNode *node, bNodeLink *link)
 
static bool group_output_insert_link (bNodeTree *ntree, bNode *node, bNodeLink *link)
 
static void reset_declaration (NodeDeclaration &declaration)
 
void build_node_declaration (const bke::bNodeType &typeinfo, NodeDeclaration &r_declaration, const bNodeTree *ntree, const bNode *node)
 
template<typename Fn >
static bool socket_type_to_static_decl_type (const eNodeSocketDatatype socket_type, Fn &&fn)
 
std::unique_ptr< SocketDeclarationmake_declaration_for_socket_type (const eNodeSocketDatatype socket_type)
 
const EnumPropertyItemenum_items_filter (const EnumPropertyItem *original_item_array, FunctionRef< bool(const EnumPropertyItem &item)> fn)
 
PropertyRNARNA_def_node_enum (StructRNA *srna, const char *identifier, const char *ui_name, const char *ui_description, const EnumPropertyItem *static_items, const EnumRNAAccessors accessors, std::optional< int > default_value, const EnumPropertyItemFunc item_func, const bool allow_animation)
 
static void refresh_node_socket (bNodeTree &ntree, bNode &node, const SocketDeclaration &socket_decl, Vector< bNodeSocket * > &old_sockets, VectorSet< bNodeSocket * > &new_sockets, const bool hide_new_sockets)
 
static void refresh_node_panel (const PanelDeclaration &panel_decl, Vector< bNodePanelState > &old_panels, bNodePanelState &new_panel)
 
static const char * get_identifier_from_decl (const char *identifier_prefix, const bNodeSocket &socket, const Span< const SocketDeclaration * > socket_decls)
 
static const char * get_identifier_from_decl (const Span< const char * > identifier_prefixes, const bNodeSocket &socket, const Span< const SocketDeclaration * > socket_decls)
 
static const char * get_current_socket_identifier_for_future_socket (const bNode &node, const bNodeSocket &socket, const Span< const SocketDeclaration * > socket_decls)
 
static void do_forward_compat_versioning (bNode &node, const NodeDeclaration &node_decl)
 
static bool hide_new_group_input_sockets (const bNode &node)
 
static void refresh_node_sockets_and_panels (bNodeTree &ntree, bNode &node, const NodeDeclaration &node_decl, const bool do_id_user)
 
static void refresh_node (bNodeTree &ntree, bNode &node, blender::nodes::NodeDeclaration &node_decl, bool do_id_user)
 
void update_node_declaration_and_sockets (bNodeTree &ntree, bNode &node)
 
bool socket_type_supports_fields (const eNodeSocketDatatype socket_type)
 
bool socket_type_supports_grids (const eNodeSocketDatatype socket_type)
 
void search_link_ops_for_declarations (GatherLinkSearchOpParams &params, Span< SocketDeclaration * > declarations)
 
void search_link_ops_for_basic_node (GatherLinkSearchOpParams &params)
 
template<typename Callback >
bool try_dispatch_float_math_fl_to_fl (const int operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl_fl_to_fl (const int operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl_fl_fl_to_fl (const int operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_to_fl (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_fl3_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_fl_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_to_fl (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
 ENUM_OPERATORS (CompositorInputRealizationOptions, CompositorInputRealizationOptions::RealizeOnOperationDomain) class OutputFieldDependency
 

Typedef Documentation

◆ ImplicitInputValueFn

using blender::nodes::ImplicitInputValueFn = std::function<void(const bNode &node, void *r_value)>

Definition at line 152 of file NOD_node_declaration.hh.

◆ ItemDeclarationPtr

Definition at line 160 of file NOD_node_declaration.hh.

◆ JoinAttributeSetsCache

◆ PanelDeclarationPtr

Definition at line 479 of file NOD_node_declaration.hh.

◆ PanelDrawButtonsFunction

◆ SocketDeclarationPtr

Definition at line 409 of file NOD_node_declaration.hh.

Enumeration Type Documentation

◆ CompositorInputRealizationOptions

A bit-field that maps to the #realtime_compositor::InputRealizationOptions.

Enumerator
None 
RealizeOnOperationDomain 

Definition at line 53 of file NOD_node_declaration.hh.

◆ InputSocketFieldType

Enumerator
None 

The input is required to be a single value.

IsSupported 

The input can be a field.

Implicit 

The input can be a field and is a field implicitly if nothing is connected.

Definition at line 29 of file NOD_node_declaration.hh.

◆ InputUsageHintType

In the general case, this is DynamicSocket. That means that to determine if a node group will use a particular input, it has to be partially executed.

In other cases, it's not necessary to look into the node group to determine if an input is necessary.

Enumerator
Never 

The input socket is never used.

DependsOnOutput 

The input socket is used when a subset of the outputs is used.

DynamicSocket 

Can't determine statically if the input is used, check the corresponding output socket.

Definition at line 313 of file NOD_geometry_nodes_lazy_function.hh.

◆ OutputSocketFieldType

Enumerator
None 

The output is always a single value.

FieldSource 

The output is always a field, independent of the inputs.

DependentField 

If any input is a field, this output will be a field as well.

PartiallyDependent 

If any of a subset of inputs is a field, this out will be a field as well. The subset is defined by the vector of indices.

Definition at line 38 of file NOD_node_declaration.hh.

Function Documentation

◆ add_used_ids_from_sockets()

static void blender::nodes::add_used_ids_from_sockets ( const ListBase & sockets,
Set< ID * > & ids )
static

◆ apply_offset_in_cyclic_range()

◆ build_node_declaration()

void blender::nodes::build_node_declaration ( const bke::bNodeType & typeinfo,
NodeDeclaration & r_declaration,
const bNodeTree * ntree,
const bNode * node )

◆ check_tool_context_and_error()

◆ cmp_node_scene_time_declare()

static void blender::nodes::cmp_node_scene_time_declare ( NodeDeclarationBuilder & b)
static

Definition at line 14 of file node_composite_scene_time.cc.

References b.

Referenced by register_node_type_cmp_scene_time().

◆ compute_attributes_to_store()

◆ count_panel_declaration_children()

static int blender::nodes::count_panel_declaration_children ( const bNodeTreeInterfacePanel & io_panel)
static

◆ custom_data_type_supports_grids()

bool blender::nodes::custom_data_type_supports_grids ( const eCustomDataType data_type)

◆ declaration_for_interface_panel()

◆ declaration_for_interface_socket()

◆ do_forward_compat_versioning()

static void blender::nodes::do_forward_compat_versioning ( bNode & node,
const NodeDeclaration & node_decl )
static

Try to update identifiers of sockets created in the future to match identifiers that exist now.

Definition at line 377 of file node_socket.cc.

References get_current_socket_identifier_for_future_socket(), blender::nodes::NodeDeclaration::inputs, LISTBASE_FOREACH, blender::nodes::NodeDeclaration::outputs, and STRNCPY.

Referenced by refresh_node_sockets_and_panels().

◆ draw_bake_button_row()

◆ draw_bake_data_block_list_item()

static void blender::nodes::draw_bake_data_block_list_item ( uiList * ,
const bContext * ,
uiLayout * layout,
PointerRNA * ,
PointerRNA * itemptr,
int ,
PointerRNA * ,
const char * ,
int ,
int  )
static

◆ draw_common_bake_settings()

◆ draw_data_blocks()

◆ ensure_geometry_nodes_lazy_function_graph()

const GeometryNodesLazyFunctionGraphInfo * blender::nodes::ensure_geometry_nodes_lazy_function_graph ( const bNodeTree & btree)

Main function that converts a bNodeTree into a lazy-function graph. If the graph has been generated already, nothing is done. Under some circumstances a valid graph cannot be created. In those cases null is returned.

Definition at line 5836 of file geometry_nodes_lazy_function.cc.

References DEG_get_original_id(), blender::bke::bNodeSocketType::geometry_nodes_cpp_type, bNodeTree::id, ID_TAG_MISSING, lock, bNodeTree::runtime, and blender::bke::bNodeTreeZones::zones.

Referenced by execute_geometry_nodes_on_geometry(), blender::bke::node_tree_runtime::preprocess_geometry_node_tree_for_evaluation(), blender::ed::geometry::run_node_group_exec(), and blender::try_add_side_effect_node().

◆ enum_items_filter()

◆ ENUM_OPERATORS()

Contains information about how a node output's field state depends on inputs of the same node.

Definition at line 57 of file NOD_node_declaration.hh.

References BLI_STRUCT_EQUALITY_OPERATORS_2.

◆ execute_geometry_nodes_on_geometry()

◆ execute_multi_function_on_value_variant()

static void blender::nodes::execute_multi_function_on_value_variant ( const MultiFunction & fn,
const std::shared_ptr< MultiFunction > & owned_fn,
const Span< SocketValueVariant * > input_values,
const Span< SocketValueVariant * > output_values )
static

◆ execute_multi_function_on_value_variant__field()

static void blender::nodes::execute_multi_function_on_value_variant__field ( const MultiFunction & fn,
const std::shared_ptr< MultiFunction > & owned_fn,
const Span< SocketValueVariant * > input_values,
const Span< SocketValueVariant * > output_values )
static

◆ execute_multi_function_on_value_variant__single()

◆ find_active_context_recursive()

static const DTreeContext * blender::nodes::find_active_context_recursive ( const DTreeContext * context)
static

◆ find_nested_node_id()

◆ find_node_tree_dependencies()

void blender::nodes::find_node_tree_dependencies ( const bNodeTree & tree,
Set< ID * > & r_ids,
bool & r_needs_own_transform_relation,
bool & r_needs_scene_camera_relation )

◆ find_output_attributes_to_store()

static MultiValueMap< bke::AttrDomain, OutputAttributeInfo > blender::nodes::find_output_attributes_to_store ( const bNodeTree & tree,
const IDProperty * properties,
Span< GMutablePointer > output_values )
static

◆ get_bake_draw_context()

bool blender::nodes::get_bake_draw_context ( const bContext * C,
const bNode & node,
BakeDrawContext & r_ctx )
nodiscard

Definition at line 663 of file node_geo_bake.cc.

References blender::bke::bake::BakeNodeCache::bake, blender::bke::bake::SimulationNodeCache::bake, blender::nodes::BakeDrawContext::bake, blender::bke::bake::ModifierCache::bake_cache_by_id, NodesModifierBake::bake_mode, blender::nodes::BakeDrawContext::bake_rna, blender::nodes::BakeDrawContext::bake_still, blender::nodes::BakeDrawContext::bake_target, blender::bke::bake::Baked, blender::nodes::BakeDrawContext::baked_range, NodesModifierData::bakes, NodesModifierData::bakes_num, BLI_assert, blender::bke::bake::SimulationNodeCache::cache_status, CTX_data_scene(), CTX_wm_space_node(), ELEM, blender::ed::space_node::find_nested_node_id_in_root(), blender::nodes::BakeDrawContext::frame_range, blender::bke::bake::NodeBakeCache::frames, blender::ed::space_node::get_modifier_for_node_editor(), blender::bke::bake::get_node_bake_frame_range(), blender::bke::bake::get_node_bake_target(), NodesModifierBake::id, Object::id, blender::nodes::BakeDrawContext::is_baked, lock, blender::bke::bake::ModifierCache::mutex, blender::nodes::BakeDrawContext::nmd, blender::nodes::BakeDrawContext::node, node, NODES_MODIFIER_BAKE_MODE_STILL, blender::nodes::BakeDrawContext::object, RNA_pointer_create(), NodesModifierData::runtime, blender::bke::bake::ModifierCache::simulation_cache_by_id, and blender::nodes::BakeDrawContext::snode.

Referenced by blender::nodes::node_geo_bake_cc::node_extra_info(), blender::nodes::node_geo_simulation_cc::sim_output_node::node_extra_info(), blender::nodes::node_geo_bake_cc::node_layout(), blender::nodes::node_geo_bake_cc::node_layout_ex(), and blender::nodes::node_geo_simulation_cc::node_layout_ex().

◆ get_bake_lazy_function()

std::unique_ptr< LazyFunction > blender::nodes::get_bake_lazy_function ( const bNode & node,
GeometryNodesLazyFunctionGraphInfo & lf_graph_info )

Definition at line 969 of file node_geo_bake.cc.

References BLI_assert.

◆ get_bake_state_string()

◆ get_baked_string()

◆ get_closest_in_bvhtree()

◆ get_compositor_operation()

static NodeOperation * blender::nodes::get_compositor_operation ( Context & context,
DNode node )
static

Definition at line 47 of file node_composite_scene_time.cc.

Referenced by register_node_type_cmp_scene_time().

◆ get_current_socket_identifier_for_future_socket()

static const char * blender::nodes::get_current_socket_identifier_for_future_socket ( const bNode & node,
const bNodeSocket & socket,
const Span< const SocketDeclaration * > socket_decls )
static

Currently, nodes that support different socket types have sockets for all supported types with different identifiers (e.g. Attribute, Attribute_001, Attribute_002, ...). In the future, we will hopefully have a better way to handle this that does not require all the sockets of different types to exist at the same time. Instead we want that there is only a single socket that can change its type while the identifier stays the same.

This function prepares us for that future. It returns the identifier that we use for a socket now based on the "base socket name" (e.g. Attribute) and its socket type. It allows us to change the socket identifiers in the future without breaking forward compatibility for the nodes handled here.

Definition at line 326 of file node_socket.cc.

References FN_NODE_COMPARE, FN_NODE_RANDOM_VALUE, get_identifier_from_decl(), bNodeSocket::identifier, SH_NODE_MAP_RANGE, SH_NODE_MIX, SOCK_VECTOR, STREQ, and bNodeSocket::type.

Referenced by do_forward_compat_versioning().

◆ get_default_id_getter()

static std::function< ID *(const bNode &node)> blender::nodes::get_default_id_getter ( const bNodeTreeInterface & tree_interface,
const bNodeTreeInterfaceSocket & io_socket )
static

◆ get_dot_cluster_for_context()

◆ get_float3_math_operation_info()

◆ get_float_compare_operation_info()

const FloatMathOperationInfo * blender::nodes::get_float_compare_operation_info ( const int operation)

◆ get_float_math_operation_info()

◆ get_foreach_attribute_propagation_target_domain()

static std::optional< AttrDomain > blender::nodes::get_foreach_attribute_propagation_target_domain ( const GeometryComponent::Type component_type)
static

◆ get_identifier_from_decl() [1/2]

static const char * blender::nodes::get_identifier_from_decl ( const char * identifier_prefix,
const bNodeSocket & socket,
const Span< const SocketDeclaration * > socket_decls )
static

◆ get_identifier_from_decl() [2/2]

static const char * blender::nodes::get_identifier_from_decl ( const Span< const char * > identifier_prefixes,
const bNodeSocket & socket,
const Span< const SocketDeclaration * > socket_decls )
static

Definition at line 301 of file node_socket.cc.

References get_identifier_from_decl().

◆ get_index_switch_node_lazy_function()

std::unique_ptr< LazyFunction > blender::nodes::get_index_switch_node_lazy_function ( const bNode & node,
GeometryNodesLazyFunctionGraphInfo & lf_graph_info )

Definition at line 392 of file node_geo_index_switch.cc.

References BLI_assert.

◆ get_init_socket_fn()

static std::function< void(bNode &node, bNodeSocket &socket, const char *data_path)> blender::nodes::get_init_socket_fn ( const bNodeTreeInterface & interface,
const bNodeTreeInterfaceSocket & io_socket )
static

◆ get_menu_switch_node_lazy_function()

std::unique_ptr< LazyFunction > blender::nodes::get_menu_switch_node_lazy_function ( const bNode & node,
GeometryNodesLazyFunctionGraphInfo & lf_graph_info )

Definition at line 509 of file node_geo_menu_switch.cc.

References BLI_assert.

◆ get_menu_switch_node_socket_usage_lazy_function()

std::unique_ptr< LazyFunction > blender::nodes::get_menu_switch_node_socket_usage_lazy_function ( const bNode & node)

Definition at line 517 of file node_geo_menu_switch.cc.

References BLI_assert.

◆ get_only_evaluated_id()

static const ID * blender::nodes::get_only_evaluated_id ( const Depsgraph & depsgraph,
const ID & id_orig )
static

◆ get_simulation_input_lazy_function()

std::unique_ptr< LazyFunction > blender::nodes::get_simulation_input_lazy_function ( const bNodeTree & node_tree,
const bNode & node,
GeometryNodesLazyFunctionGraphInfo & own_lf_graph_info )

Definition at line 968 of file node_geo_simulation.cc.

References BLI_assert, node, and node_tree.

◆ get_simulation_output_lazy_function()

std::unique_ptr< LazyFunction > blender::nodes::get_simulation_output_lazy_function ( const bNode & node,
GeometryNodesLazyFunctionGraphInfo & own_lf_graph_info )

Definition at line 979 of file node_geo_simulation.cc.

References BLI_assert, and node.

◆ get_socket_cpp_type() [1/2]

◆ get_socket_cpp_type() [2/2]

static const CPPType * blender::nodes::get_socket_cpp_type ( const bNodeSocket & socket)
static

Definition at line 79 of file geometry_nodes_lazy_function.cc.

References get_socket_cpp_type(), and bNodeSocket::typeinfo.

◆ get_socket_default_value()

◆ get_switch_node_lazy_function()

std::unique_ptr< LazyFunction > blender::nodes::get_switch_node_lazy_function ( const bNode & node)

Definition at line 266 of file node_geo_switch.cc.

References BLI_assert.

◆ get_vector_type()

◆ get_warning_node_lazy_function()

std::unique_ptr< LazyFunction > blender::nodes::get_warning_node_lazy_function ( const bNode & node)

Definition at line 101 of file node_geo_warning.cc.

References BLI_assert.

◆ gizmo_is_used()

◆ grid_custom_data_type_items_filter_fn()

const EnumPropertyItem * blender::nodes::grid_custom_data_type_items_filter_fn ( bContext * ,
PointerRNA * ,
PropertyRNA * ,
bool * r_free )

◆ grid_socket_type_items_filter_fn()

const EnumPropertyItem * blender::nodes::grid_socket_type_items_filter_fn ( bContext * ,
PointerRNA * ,
PropertyRNA * ,
bool * r_free )

◆ group_input_declare()

static void blender::nodes::group_input_declare ( NodeDeclarationBuilder & b)
static

Definition at line 743 of file node_common.cc.

References b, bNodeTreeInterfaceItem::item_type, and node_tree.

Referenced by register_node_type_group_input().

◆ group_input_insert_link()

◆ group_output_declare()

static void blender::nodes::group_output_declare ( NodeDeclarationBuilder & b)
static

◆ group_output_insert_link()

◆ hide_new_group_input_sockets()

static bool blender::nodes::hide_new_group_input_sockets ( const bNode & node)
static

When the extension socket on group input nodes is hidden, we consider the socket visibility fixed and don't want to add newly created group inputs.

Definition at line 403 of file node_socket.cc.

References BLI_assert.

Referenced by refresh_node_sockets_and_panels().

◆ id_name_or_value_prop()

static std::unique_ptr< IDProperty, bke::idprop::IDPropertyDeleter > blender::nodes::id_name_or_value_prop ( const StringRefNull identifier,
ID * id,
const std::optional< ID_Type > id_type,
const bool use_name_for_ids )
static

◆ id_property_create_from_socket()

◆ id_property_int_update_enum_items()

◆ id_property_type_matches_socket()

bool blender::nodes::id_property_type_matches_socket ( const bNodeTreeInterfaceSocket & socket,
const IDProperty & property,
const bool use_name_for_ids )

◆ ignore_zone_bsocket()

static bool blender::nodes::ignore_zone_bsocket ( const bNodeSocket & bsocket)
static

◆ init_socket_cpp_value_from_property()

◆ initialize_group_input()

◆ initialize_zone_wrapper()

static void blender::nodes::initialize_zone_wrapper ( const bNodeTreeZone & zone,
ZoneBuildInfo & zone_info,
const ZoneBodyFunction & body_fn,
Vector< lf::Input > & r_inputs,
Vector< lf::Output > & r_outputs )
static

◆ input_attribute_name_get()

◆ input_attribute_name_suffix()

◆ input_has_attribute_toggle()

bool blender::nodes::input_has_attribute_toggle ( const bNodeTree & node_tree,
const int socket_index )
Returns
Whether using an attribute to input values of this type is supported, and the node group's input for this socket accepts a field rather than just single values.

Definition at line 161 of file geometry_nodes_execute.cc.

References BLI_assert, ELEM, blender::nodes::FieldInferencingInterface::inputs, node_tree, None, SOCK_MENU, and blender::bke::bNodeSocketType::type.

Referenced by blender::ed::geometry::draw_property_for_socket(), and initialize_group_input().

◆ input_use_attribute_suffix()

◆ lazy_function_interface_from_node()

◆ make_anonymous_attribute_socket_inspection_string() [1/2]

◆ make_anonymous_attribute_socket_inspection_string() [2/2]

std::string blender::nodes::make_anonymous_attribute_socket_inspection_string ( StringRef node_name,
StringRef socket_name )

Definition at line 454 of file geometry_nodes_lazy_function.cc.

References TIP_.

◆ make_declaration_for_socket_type()

std::unique_ptr< SocketDeclaration > blender::nodes::make_declaration_for_socket_type ( const eNodeSocketDatatype socket_type)

Definition at line 453 of file node_declaration.cc.

References socket_type_to_static_decl_type().

◆ mix_baked_data_item()

◆ node_geo_exec_with_missing_openvdb()

◆ node_group_declare()

◆ node_needs_own_transform_relation()

static bool blender::nodes::node_needs_own_transform_relation ( const bNode & node)
static
Note
We can only check properties here that cause the dependency graph to update relations when they are changed, otherwise there may be a missing relation after editing. So this could check more properties like whether the node is muted, but we would have to accept the cost of updating relations when those properties are changed.

Definition at line 84 of file geometry_nodes_execute.cc.

References GEO_NODE_TRANSFORM_SPACE_RELATIVE, NodeGeometryCollectionInfo::transform_space, and NodeGeometryObjectInfo::transform_space.

Referenced by process_nodes_for_depsgraph().

◆ old_id_property_type_matches_socket_convert_to_new()

static bool blender::nodes::old_id_property_type_matches_socket_convert_to_new ( const bNodeTreeInterfaceSocket & socket,
const IDProperty & old_property,
IDProperty * new_property,
const bool use_name_for_ids )
static

◆ old_id_property_type_matches_socket_convert_to_new_float_vec()

static bool blender::nodes::old_id_property_type_matches_socket_convert_to_new_float_vec ( const IDProperty & old_property,
IDProperty * new_property,
const int len )
static

◆ old_id_property_type_matches_socket_convert_to_new_int()

static bool blender::nodes::old_id_property_type_matches_socket_convert_to_new_int ( const IDProperty & old_property,
IDProperty * new_property )
static

◆ old_id_property_type_matches_socket_convert_to_new_string()

static bool blender::nodes::old_id_property_type_matches_socket_convert_to_new_string ( const IDProperty & old_property,
IDProperty * new_property )
static

◆ process_nodes_for_depsgraph()

static void blender::nodes::process_nodes_for_depsgraph ( const bNodeTree & tree,
Set< ID * > & ids,
bool & r_needs_own_transform_relation,
bool & r_needs_scene_camera_relation,
Set< const bNodeTree * > & checked_groups )
static

◆ refresh_node()

◆ refresh_node_panel()

◆ refresh_node_socket()

◆ refresh_node_sockets_and_panels()

◆ register_node_type_geo_group()

◆ reset_declaration()

static void blender::nodes::reset_declaration ( NodeDeclaration & declaration)
static

Definition at line 21 of file node_declaration.cc.

Referenced by build_node_declaration().

◆ RNA_def_node_enum()

PropertyRNA * blender::nodes::RNA_def_node_enum ( StructRNA * srna,
const char * identifier,
const char * ui_name,
const char * ui_description,
const EnumPropertyItem * static_items,
const EnumRNAAccessors accessors,
std::optional< int > default_value,
const EnumPropertyItemFunc item_func,
const bool allow_animation )

Definition at line 25 of file node_rna_define.cc.

References blender::nodes::EnumRNAAccessors::getter, NA_EDITED, NC_NODE, PROP_ANIMATABLE, PROP_ENUM, PROP_NONE, RNA_def_property(), RNA_def_property_clear_flag(), RNA_def_property_enum_default(), RNA_def_property_enum_funcs_runtime(), RNA_def_property_enum_items(), RNA_def_property_ui_text(), RNA_def_property_update_notifier(), RNA_def_property_update_runtime(), rna_Node_socket_update(), rna_Node_update(), and blender::nodes::EnumRNAAccessors::setter.

Referenced by blender::nodes::node_fn_align_euler_to_vector_cc::node_rna(), blender::nodes::node_fn_align_rotation_to_vector_cc::node_rna(), blender::nodes::node_fn_axes_to_rotation_cc::node_rna(), blender::nodes::node_fn_boolean_math_cc::node_rna(), blender::nodes::node_fn_combine_color_cc::node_rna(), blender::nodes::node_fn_compare_cc::node_rna(), blender::nodes::node_fn_hash_value_cc::node_rna(), blender::nodes::node_fn_integer_math_cc::node_rna(), blender::nodes::node_fn_rotate_rotation_cc::node_rna(), blender::nodes::node_fn_separate_color_cc::node_rna(), blender::nodes::node_fn_value_to_string_cc::node_rna(), blender::nodes::node_geo_accumulate_field_cc::node_rna(), blender::nodes::node_geo_attribute_domain_size_cc::node_rna(), blender::nodes::node_geo_attribute_statistic_cc::node_rna(), blender::nodes::node_geo_blur_attribute_cc::node_rna(), blender::nodes::node_geo_boolean_cc::node_rna(), blender::nodes::node_geo_collection_info_cc::node_rna(), blender::nodes::node_geo_curve_fill_cc::node_rna(), blender::nodes::node_geo_curve_fillet_cc::node_rna(), blender::nodes::node_geo_curve_primitive_arc_cc::node_rna(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::node_rna(), blender::nodes::node_geo_curve_primitive_circle_cc::node_rna(), blender::nodes::node_geo_curve_primitive_line_cc::node_rna(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_rna(), blender::nodes::node_geo_curve_resample_cc::node_rna(), blender::nodes::node_geo_curve_spline_type_cc::node_rna(), blender::nodes::node_geo_curve_to_points_cc::node_rna(), blender::nodes::node_geo_curve_trim_cc::node_rna(), blender::nodes::node_geo_delete_geometry_cc::node_rna(), blender::nodes::node_geo_distribute_points_in_grid_cc::node_rna(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_rna(), blender::nodes::node_geo_duplicate_elements_cc::node_rna(), blender::nodes::node_geo_evaluate_at_index_cc::node_rna(), blender::nodes::node_geo_evaluate_on_domain_cc::node_rna(), blender::nodes::node_geo_extrude_mesh_cc::node_rna(), blender::nodes::node_geo_get_named_grid_cc::node_rna(), blender::nodes::node_geo_gizmo_dial_cc::node_rna(), blender::nodes::node_geo_gizmo_linear_cc::node_rna(), blender::nodes::node_geo_index_switch_cc::node_rna(), blender::nodes::node_geo_input_named_attribute_cc::node_rna(), blender::nodes::node_geo_menu_switch_cc::node_rna(), blender::nodes::node_geo_merge_by_distance_cc::node_rna(), blender::nodes::node_geo_merge_layers_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_circle_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_cylinder_cc::node_rna(), blender::nodes::node_geo_mesh_primitive_line_cc::node_rna(), blender::nodes::node_geo_mesh_to_points_cc::node_rna(), blender::nodes::node_geo_mesh_to_volume_cc::node_rna(), blender::nodes::node_geo_object_info_cc::node_rna(), blender::nodes::node_geo_points_to_volume_cc::node_rna(), blender::nodes::node_geo_proximity_cc::node_rna(), blender::nodes::node_geo_raycast_cc::node_rna(), blender::nodes::node_geo_remove_attribute_cc::node_rna(), blender::nodes::node_geo_sample_grid_cc::node_rna(), blender::nodes::node_geo_sample_grid_index_cc::node_rna(), blender::nodes::node_geo_sample_nearest_cc::node_rna(), blender::nodes::node_geo_sample_nearest_surface_cc::node_rna(), blender::nodes::node_geo_sample_uv_surface_cc::node_rna(), blender::nodes::node_geo_scale_elements_cc::node_rna(), blender::nodes::node_geo_sdf_grid_boolean_cc::node_rna(), blender::nodes::node_geo_separate_geometry_cc::node_rna(), blender::nodes::node_geo_set_curve_handles_cc::node_rna(), blender::nodes::node_geo_set_curve_normal_cc::node_rna(), blender::nodes::node_geo_set_shade_smooth_cc::node_rna(), blender::nodes::node_geo_sort_elements_cc::node_rna(), blender::nodes::node_geo_split_to_instances_cc::node_rna(), blender::nodes::node_geo_store_named_attribute_cc::node_rna(), blender::nodes::node_geo_store_named_grid_cc::node_rna(), blender::nodes::node_geo_subdivision_surface_cc::node_rna(), blender::nodes::node_geo_switch_cc::node_rna(), blender::nodes::node_geo_tool_active_element_cc::node_rna(), blender::nodes::node_geo_tool_set_selection_cc::node_rna(), blender::nodes::node_geo_transform_geometry_cc::node_rna(), blender::nodes::node_geo_triangulate_cc::node_rna(), blender::nodes::node_geo_uv_unwrap_cc::node_rna(), blender::nodes::node_geo_viewer_cc::node_rna(), blender::nodes::node_geo_volume_to_mesh_cc::node_rna(), and blender::nodes::node_geo_warning_cc::node_rna().

◆ search_link_ops_for_basic_node()

void blender::nodes::search_link_ops_for_basic_node ( GatherLinkSearchOpParams & params)

This callback can be used for a node type when a few things are true about its inputs. To avoid creating more boilerplate, it is the default callback for node types.

  • Either all declared sockets are visible in the default state of the node, OR the node's type's declaration has been extended with #make_available functions for those sockets.

If a node type does not meet these criteria, the function will do nothing in a release build. In a debug build, an assert will most likely be hit.

Note
For nodes with the deprecated blender::bke::bNodeSocketTemplate instead of a declaration, these criteria do not apply and the function just tries its best without asserting.

Definition at line 147 of file socket_search_link.cc.

References params, search_link_ops_for_declarations(), blender::nodes::NodeDeclaration::sockets(), and blender::bke::bNodeType::static_declaration.

Referenced by cmp_node_type_base(), fn_node_type_base(), geo_node_type_base(), search_link_ops_for_import_node(), search_link_ops_for_tool_node(), search_link_ops_for_volume_grid_node(), sh_fn_node_type_base(), and sh_node_type_base().

◆ search_link_ops_for_declarations()

void blender::nodes::search_link_ops_for_declarations ( GatherLinkSearchOpParams & params,
Span< SocketDeclaration * > declarations )

Definition at line 102 of file socket_search_link.cc.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::nodes::SocketDeclaration::can_connect(), IFACE_, blender::Span< T >::index_range(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::nodes::SocketDeclaration::is_default_link_socket, blender::nodes::SocketDeclaration::name, and params.

Referenced by blender::nodes::node_fn_random_value_cc::node_gather_link_search_ops(), blender::nodes::node_geo_accumulate_field_cc::node_gather_link_searches(), blender::nodes::node_geo_attribute_statistic_cc::node_gather_link_searches(), blender::nodes::node_geo_blur_attribute_cc::node_gather_link_searches(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_gather_link_searches(), blender::nodes::node_geo_curve_sample_cc::node_gather_link_searches(), blender::nodes::node_geo_curve_trim_cc::node_gather_link_searches(), blender::nodes::node_geo_input_named_attribute_cc::node_gather_link_searches(), blender::nodes::node_geo_mesh_primitive_line_cc::node_gather_link_searches(), blender::nodes::node_geo_raycast_cc::node_gather_link_searches(), blender::nodes::node_geo_sample_index_cc::node_gather_link_searches(), blender::nodes::node_geo_sample_nearest_surface_cc::node_gather_link_searches(), blender::nodes::node_geo_sample_uv_surface_cc::node_gather_link_searches(), blender::nodes::node_geo_store_named_attribute_cc::node_gather_link_searches(), blender::nodes::node_shader_tex_sky_cc::node_gather_link_searches(), and search_link_ops_for_basic_node().

◆ search_link_ops_for_import_node()

◆ search_link_ops_for_tool_node()

◆ search_link_ops_for_volume_grid_node()

◆ set_default_input_field()

◆ set_default_remaining_node_outputs()

◆ set_default_value_for_output_socket()

◆ should_log_socket_values_for_context()

◆ socket_type_has_attribute_toggle()

bool blender::nodes::socket_type_has_attribute_toggle ( eNodeSocketDatatype type)
Returns
Whether using an attribute to input values of this type is supported.

Definition at line 156 of file geometry_nodes_execute.cc.

References socket_type_supports_fields().

Referenced by find_output_attributes_to_store(), update_input_properties_from_node_tree(), and update_output_properties_from_node_tree().

◆ socket_type_supports_fields()

bool blender::nodes::socket_type_supports_fields ( const eNodeSocketDatatype socket_type)

Definition at line 523 of file node_socket.cc.

References ELEM, SOCK_BOOLEAN, SOCK_FLOAT, SOCK_INT, SOCK_MATRIX, SOCK_MENU, SOCK_RGBA, SOCK_ROTATION, and SOCK_VECTOR.

Referenced by blender::bke::anonymous_attribute_inferencing::analyze_anonymous_attribute_usages(), blender::bke::node_field_inferencing::determine_group_input_states(), blender::nodes::node_geo_bake_cc::draw_bake_items(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), blender::bke::node_field_inferencing::is_field_socket_type(), blender::nodes::node_geo_index_switch_cc::LazyFunctionForIndexSwitchNode::LazyFunctionForIndexSwitchNode(), blender::nodes::node_geo_menu_switch_cc::LazyFunctionForMenuSwitchNode::LazyFunctionForMenuSwitchNode(), blender::nodes::node_geo_switch_cc::LazyFunctionForSwitchNode::LazyFunctionForSwitchNode(), blender::nodes::node_geo_bake_cc::node_declare(), blender::nodes::node_geo_index_switch_cc::node_declare(), blender::nodes::node_geo_menu_switch_cc::node_declare(), blender::nodes::node_geo_repeat_cc::repeat_input_node::node_declare(), blender::nodes::node_geo_repeat_cc::repeat_output_node::node_declare(), blender::nodes::node_geo_simulation_cc::sim_input_node::node_declare(), blender::nodes::node_geo_simulation_cc::sim_output_node::node_declare(), blender::nodes::node_geo_switch_cc::node_declare(), blender::bke::anonymous_attribute_inferencing::bNodeTreeToDotOptionsForAnonymousAttributeInferencing::socket_name(), socket_type_has_attribute_toggle(), and blender::ed::space_node::std_node_socket_interface_draw().

◆ socket_type_supports_grids()

bool blender::nodes::socket_type_supports_grids ( const eNodeSocketDatatype socket_type)

Definition at line 536 of file node_socket.cc.

References ELEM, SOCK_FLOAT, and SOCK_VECTOR.

Referenced by custom_data_type_supports_grids(), and grid_socket_type_items_filter_fn().

◆ socket_type_to_static_decl_type()

◆ store_computed_output_attributes()

static void blender::nodes::store_computed_output_attributes ( bke::GeometrySet & geometry,
const Span< OutputAttributeToStore > attributes_to_store )
static

◆ store_output_attributes()

◆ try_dispatch_float_math_fl3_fl3_fl3_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl3_fl3_to_fl3 ( const NodeVectorMathOperation operation,
Callback && callback )
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 299 of file NOD_math_functions.hh.

References b, callback, faceforward(), get_float3_math_operation_info(), NODE_VECTOR_MATH_FACEFORWARD, NODE_VECTOR_MATH_MULTIPLY_ADD, NODE_VECTOR_MATH_WRAP, and wrapf().

Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().

◆ try_dispatch_float_math_fl3_fl3_fl_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl3_fl_to_fl3 ( const NodeVectorMathOperation operation,
Callback && callback )
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 338 of file NOD_math_functions.hh.

References b, callback, get_float3_math_operation_info(), NODE_VECTOR_MATH_REFRACT, normalize(), and refract().

Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().

◆ try_dispatch_float_math_fl3_fl3_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl3_to_fl ( const NodeVectorMathOperation operation,
Callback && callback )
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 266 of file NOD_math_functions.hh.

References b, callback, distance(), get_float3_math_operation_info(), NODE_VECTOR_MATH_DISTANCE, and NODE_VECTOR_MATH_DOT_PRODUCT.

Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().

◆ try_dispatch_float_math_fl3_fl3_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl3_to_fl3 ( const NodeVectorMathOperation operation,
Callback && callback )
inline

◆ try_dispatch_float_math_fl3_fl_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_fl_to_fl3 ( const NodeVectorMathOperation operation,
Callback && callback )
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 401 of file NOD_math_functions.hh.

References b, callback, get_float3_math_operation_info(), and NODE_VECTOR_MATH_SCALE.

Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().

◆ try_dispatch_float_math_fl3_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_to_fl ( const NodeVectorMathOperation operation,
Callback && callback )
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 370 of file NOD_math_functions.hh.

References callback, get_float3_math_operation_info(), length(), and NODE_VECTOR_MATH_LENGTH.

Referenced by blender::nodes::node_shader_vector_math_cc::get_multi_function().

◆ try_dispatch_float_math_fl3_to_fl3()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl3_to_fl3 ( const NodeVectorMathOperation operation,
Callback && callback )
inline

◆ try_dispatch_float_math_fl_fl_fl_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl_fl_fl_to_fl ( const int operation,
Callback && callback )
inline

This is similar to try_dispatch_float_math_fl_to_fl, just with a different callback signature.

Definition at line 172 of file NOD_math_functions.hh.

References b, callback, fabsf, fmaxf, get_float_math_operation_info(), NODE_MATH_COMPARE, NODE_MATH_MULTIPLY_ADD, NODE_MATH_SMOOTH_MAX, NODE_MATH_SMOOTH_MIN, NODE_MATH_WRAP, smoothminf(), and wrapf().

Referenced by blender::nodes::node_shader_math_cc::get_base_multi_function().

◆ try_dispatch_float_math_fl_fl_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl_fl_to_fl ( const int operation,
Callback && callback )
inline

◆ try_dispatch_float_math_fl_to_fl()

template<typename Callback >
bool blender::nodes::try_dispatch_float_math_fl_to_fl ( const int operation,
Callback && callback )
inline

This calls the callback with two arguments:

  1. The math function that takes a float as input and outputs a new float.
  2. A #FloatMathOperationInfo struct reference. Returns true when the callback has been called, otherwise false.

The math function that is passed to the callback is actually a lambda function that is different for every operation. Therefore, if the callback is templated on the math function, it will get instantiated for every operation separately. This has two benefits:

  • The compiler can optimize the callback for every operation separately.
  • A static variable declared in the callback will be generated for every operation separately.

If separate instantiations are not desired, the callback can also take a function pointer with the following signature as input instead: float (*math_function)(float a).

Definition at line 49 of file NOD_math_functions.hh.

References atanf, callback, ceilf, compatible_signf(), cosf, coshf, DEG2RAD, expf, fabs(), floorf, get_float_math_operation_info(), NODE_MATH_ABSOLUTE, NODE_MATH_ARCCOSINE, NODE_MATH_ARCSINE, NODE_MATH_ARCTANGENT, NODE_MATH_CEIL, NODE_MATH_COSH, NODE_MATH_COSINE, NODE_MATH_DEGREES, NODE_MATH_EXPONENT, NODE_MATH_FLOOR, NODE_MATH_FRACTION, NODE_MATH_INV_SQRT, NODE_MATH_RADIANS, NODE_MATH_ROUND, NODE_MATH_SIGN, NODE_MATH_SINE, NODE_MATH_SINH, NODE_MATH_SQRT, NODE_MATH_TANGENT, NODE_MATH_TANH, NODE_MATH_TRUNC, RAD2DEG, safe_acosf(), safe_asinf(), safe_inverse_sqrtf(), safe_sqrtf(), sinf, sinhf, tanf, and tanhf.

Referenced by blender::nodes::node_shader_math_cc::get_base_multi_function().

◆ update_input_properties_from_node_tree()

◆ update_node_declaration_and_sockets()

◆ update_output_properties_from_node_tree()

◆ zone_wrapper_input_name()

◆ zone_wrapper_output_name()