Blender V5.0
blender::nodes Namespace Reference

Namespaces

namespace  value_elem
namespace  inverse_eval
namespace  anonymous_attribute_lifetime
namespace  gizmos
namespace  geo_eval_log
namespace  node_composite_alpha_over_cc
namespace  node_composite_antialiasing_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_spill_cc
namespace  node_composite_colorbalance_cc
namespace  node_composite_colorcorrection_cc
namespace  node_composite_convert_color_space_cc
namespace  node_composite_convert_to_display_cc
namespace  node_composite_convolve_cc
namespace  node_composite_cornerpin_cc
namespace  node_composite_crop_cc
namespace  node_composite_base_cryptomatte_cc
namespace  node_composite_cryptomatte_cc
namespace  node_composite_legacy_cryptomatte_cc
namespace  node_composite_time_curves_cc
namespace  node_composite_rgb_curves_cc
namespace  node_composite_defocus_cc
namespace  node_composite_denoise_cc
namespace  node_composite_zcombine_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_glare_cc
namespace  node_composite_group_input_cc
namespace  node_composite_group_output_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_render_layer_cc
namespace  node_composite_image_coordinates_cc
namespace  node_composite_image_info_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_lensdist_cc
namespace  node_composite_levels_cc
namespace  node_composite_luma_matte_cc
namespace  node_composite_map_uv_cc
namespace  node_composite_mask_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_relative_to_pixel_cc
namespace  node_composite_rgb_cc
namespace  node_composite_rotate_cc
namespace  node_composite_scale_cc
namespace  node_composite_separate_color_cc
namespace  node_composite_combine_color_cc
namespace  node_composite_setalpha_cc
namespace  node_composite_split_cc
namespace  node_composite_stabilize2d_cc
namespace  node_composite_switch_cc
namespace  node_composite_switchview_cc
namespace  node_composite_tonemap_cc
namespace  node_composite_trackpos_cc
namespace  node_composite_transform_cc
namespace  node_composite_translate_cc
namespace  node_composite_rgb_to_bw_cc
namespace  node_composite_vec_blur_cc
namespace  node_composite_viewer_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_bit_math_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_find_in_string_cc
namespace  node_fn_float_to_int_cc
namespace  node_fn_format_string_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_match_string_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_string_to_value_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  enums
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_camera_info_cc
namespace  node_geo_closure_cc
namespace  node_geo_collection_info_cc
namespace  node_geo_combine_bundle_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_enable_output_cc
namespace  node_geo_evaluate_at_index_cc
namespace  node_geo_evaluate_closure_cc
namespace  node_geo_evaluate_on_domain_cc
namespace  node_geo_extrude_mesh_cc
namespace  node_geo_field_average_cc
namespace  node_geo_field_min_and_max_cc
namespace  node_geo_field_to_grid_cc
namespace  node_geo_field_variance_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_advect_cc
namespace  node_geo_grid_curl_cc
namespace  node_geo_grid_divergence_cc
namespace  node_geo_grid_gradient_cc
namespace  node_geo_grid_info_cc
namespace  node_geo_grid_laplacian_cc
namespace  node_geo_grid_prune_cc
namespace  node_geo_grid_to_mesh_cc
namespace  node_geo_grid_voxelize_cc
namespace  node_geo_image_cc
namespace  node_geo_image_info_cc
namespace  node_geo_image_texture_cc
namespace  node_geo_import_csv
namespace  node_geo_import_obj
namespace  nodes_geo_import_ply
namespace  node_geo_import_stl
namespace  node_geo_import_text
namespace  node_geo_import_vdb
namespace  node_geo_index_of_nearest_cc
namespace  node_geo_index_switch_cc
namespace  node_geo_input_active_camera_cc
namespace  node_geo_input_collection_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_bounds_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_object_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_input_voxel_index_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_bundle
namespace  node_geo_join_geometry_cc
namespace  node_geo_list_cc
namespace  node_geo_list_get_item_cc
namespace  node_geo_list_length_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_sdf_grid_fillet_cc
namespace  node_geo_sdf_grid_laplacian_cc
namespace  node_geo_sdf_grid_mean_cc
namespace  node_geo_sdf_grid_mean_curvature_cc
namespace  node_geo_sdf_grid_median_cc
namespace  node_geo_sdf_grid_offset_cc
namespace  node_geo_self_object_cc
namespace  node_geo_separate_bundle_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_grease_pencil_color_cc
namespace  node_geo_grease_pencil_set_depth_mode
namespace  node_geo_set_grease_pencil_softness_cc
namespace  node_geo_set_grid_background
namespace  node_geo_set_grid_transform
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_mesh_normal_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_tangent_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  tests
namespace  implicit_field_inputs
namespace  decl
namespace  partial_eval
namespace  socket_usage_inference
namespace  switch_node_inference_utils
namespace  derived_node_tree_types
namespace  sim_input
namespace  sim_output
namespace  socket_items
namespace  materialx
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_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_sh_mix_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_radial_tiling_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_combine_color_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_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_coefficients_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

Classes

struct  FileOutputItemsAccessor
class  SceneTimeOperation
struct  FormatStringItemsAccessor
struct  BakeItemsAccessor
struct  BakeDrawContext
struct  CombineBundleItemsAccessor
struct  SeparateBundleItemsAccessor
struct  CaptureAttributeItemsAccessor
struct  ClosureInputItemsAccessor
struct  ClosureOutputItemsAccessor
struct  EvaluateClosureInputItemsAccessor
struct  EvaluateClosureOutputItemsAccessor
struct  FieldToGridItemsAccessor
struct  ForeachGeometryElementInputItemsAccessor
struct  ForeachGeometryElementMainItemsAccessor
struct  ForeachGeometryElementGenerationItemsAccessor
struct  IndexSwitchItemsAccessor
struct  MenuSwitchItemsAccessor
struct  RepeatItemsAccessor
struct  SimulationItemsAccessor
struct  GeoViewerItemsAccessor
class  ClosureIntermediateGraphSideEffectProvider
class  LazyFunctionForClosureZone
struct  EvaluateClosureEvalStorage
class  LazyFunctionForEvaluateClosureNode
struct  OutputAttributeInfo
struct  OutputAttributeToStore
struct  ForeachElementComponentID
struct  ForeachElementComponent
struct  LazyFunctionForReduceForeachGeometryElement
class  ForeachGeometryElementNodeExecuteWrapper
class  ForeachGeometryElementZoneSideEffectProvider
struct  ForeachGeometryElementEvalStorage
class  LazyFunctionForForeachGeometryElementZone
class  LazyFunctionForGeometryNode
class  LazyFunctionForMultiInput
class  LazyFunctionForRerouteNode
class  LazyFunctionForUndefinedNode
class  LazyFunctionForImplicitConversion
class  LazyFunctionForMutedNode
class  LazyFunctionForMultiFunctionNode
class  LazyFunctionForImplicitInput
class  LazyFunctionForViewerNode
class  LazyFunctionForViewerInputUsage
class  LazyFunctionForGizmoNode
class  LazyFunctionForGizmoInputsUsage
class  LazyFunctionForSimulationInputsUsage
class  LazyFunctionForBakeInputsUsage
class  LazyFunctionForGroupNode
class  LazyFunctionForSwitchSocketUsage
class  LazyFunctionForEnableOutputSocketUsage
class  LazyFunctionForIndexSwitchSocketUsage
class  LazyFunctionForExtractingReferenceSet
class  LazyFunctionForJoinReferenceSets
class  LazyFunctionForSimulationZone
struct  BuildGraphParams
class  GeometryNodesLazyFunctionLogger
class  GeometryNodesLazyFunctionSideEffectProvider
struct  GeometryNodesLazyFunctionBuilder
class  ArrayImplicitSharingData
class  SingleImplicitSharingData
class  RepeatBodyNodeExecuteWrapper
class  RepeatZoneSideEffectProvider
struct  RepeatEvalStorage
class  LazyFunctionForRepeatZone
class  ListFieldContext
class  ClampWrapperFunction
class  SocketValueInferencerImpl
struct  BundleSyncState
struct  ClosureSyncState
class  DTreeContext
class  DNode
class  DSocket
class  DInputSocket
class  DOutputSocket
class  DerivedNodeTree
class  NodeAttributeFilter
class  GeoNodeExecParams
struct  BundleItemSocketValue
class  BundleItemInternalValueMixin
struct  BundleItemInternalValue
struct  BundleItemValue
class  Bundle
struct  BundleSignature
struct  LinkedBundleSignatures
struct  ClosureFunctionIndices
class  Closure
struct  ClosureEagerEvalParams
struct  ClosureEvalLocation
struct  ClosureSourceLocation
struct  ClosureEvalLog
class  ClosureSignature
struct  LinkedClosureSignatures
struct  GeometryNodesEvalDependencies
struct  IDPropNameGetter
struct  SimulationZoneBehavior
class  GeoNodesSimulationParams
struct  BakeNodeBehavior
class  GeoNodesBakeParams
struct  GeoNodesSideEffectNodes
struct  GeoNodesModifierData
struct  GeoNodesOperatorDepsgraphs
struct  GeoNodesOperatorData
struct  GeoNodesCallData
struct  GeoNodesUserData
struct  GeoNodesLocalUserData
struct  InputUsageHint
struct  GeometryNodeLazyFunctionGraphMapping
struct  GeometryNodesGroupFunction
struct  GeometryNodesLazyFunctionGraphInfo
class  ScopedComputeContextTimer
class  ScopedNodeTimer
class  LazyFunctionForLogicalOr
struct  ZoneFunctionIndices
struct  ZoneBuildInfo
struct  ZoneBodyFunction
struct  EvaluateClosureFunctionIndices
struct  EvaluateClosureFunction
class  List
struct  GeoNodesMultiInput
struct  FloatMathOperationInfo
struct  MenuValue
class  NodeMultiFunctionBuilder
class  NodeMultiFunctions
struct  FoundNestedNodeID
class  OutputFieldDependency
struct  FieldInferencingInterface
struct  StructureTypeInterface
class  ItemDeclaration
struct  SocketNameRNA
struct  CustomSocketDrawParams
class  SocketDeclaration
class  BaseSocketDeclarationBuilder
class  SocketDeclarationBuilder
class  SeparatorDeclaration
class  LayoutDeclaration
class  PanelDeclaration
class  DeclarationListBuilder
class  PanelDeclarationBuilder
class  NodeDeclaration
class  NodeDeclarationBuilder
struct  NodeExtraInfoRow
struct  NodeExtraInfoParams
struct  NodeInContext
struct  SocketInContext
struct  TreeInContext
struct  EnumRNAAccessors
struct  BooleanRNAAccessors
struct  InlineShaderNodeTreeParams
class  LinkSearchOpParams
struct  SocketLinkOperation
class  GatherLinkSearchOpParams
class  InferenceValue
class  SocketValueInferencer
struct  ReferenceSetInfo
class  AttributeAccessor
class  GeometryComponent
struct  GeometrySet
class  MutableAttributeAccessor
class  SocketValueVariant
class  Field
class  GField
class  bNodeTreeZone
class  bNodeTreeZones
struct  ReferenceLifetimesInfo
struct  AttributeDomainAndType
class  AttributeFieldInput
struct  AttributeFilter
class  AttributeIter
struct  AttributeReader
struct  AttributeWriter
class  CurveComponent
struct  GAttributeReader
struct  GAttributeWriter
class  GeometryComponentEditData
class  GeometryNodesReferenceSet
class  GreasePencilComponent
struct  GSpanAttributeWriter
class  InstancesComponent
class  MeshComponent
class  PointCloudComponent
struct  SpanAttributeWriter
class  VolumeComponent
class  FieldContext
class  FieldEvaluator
class  FieldInput
class  FieldOperation
class  LazyFunction

Typedefs

using JoinReferenceSetsCache = Map<Vector<lf::OutputSocket *>, lf::OutputSocket *>
using BundlePtr = ImplicitSharingPtr<Bundle>
using ClosurePtr = ImplicitSharingPtr<Closure>
using ReferenceSetIndex = int
using ListPtr = ImplicitSharingPtr<List>
using ItemDeclarationPtr = std::unique_ptr<ItemDeclaration>
using CustomSocketDrawFn = std::function<void(CustomSocketDrawParams &params)>
using InputSocketUsageInferenceFn
using SocketDeclarationPtr = std::unique_ptr<SocketDeclaration>
using DrawNodeLayoutFn = void(uiLayout *, bContext *, PointerRNA *)
using PanelDeclarationPtr = std::unique_ptr<PanelDeclaration>
using ImplicitInputValueFn = std::function<void(const bNode &node, void *r_value)>

Enumerations

enum class  NodeSyncState { Synced , CanBeSynced , NoSyncSource , ConflictingSyncSources }
enum class  InputUsageHintType { Never , DependsOnOutput , DynamicSocket }
enum class  NodeWarningType { Error = 0 , Warning = 1 , Info = 2 }
enum class  InputSocketFieldType : int8_t { None , IsSupported , Implicit }
enum class  OutputSocketFieldType : int8_t { None , FieldSource , DependentField , PartiallyDependent }
enum class  CompositorInputRealizationMode : int8_t { None , Transforms , OperationDomain }
enum class  ReferenceSetType
enum class  AttrDomain
enum class  ReferenceSetType
enum class  AttrDomain
enum class  NamedAttributeUsage

Functions

compositor::NodeOperationget_group_input_compositor_operation (compositor::Context &context, DNode node)
void get_compositor_group_input_extra_info (blender::nodes::NodeExtraInfoParams &parameters)
compositor::NodeOperationget_group_output_compositor_operation (compositor::Context &context, DNode node)
void get_compositor_group_output_extra_info (blender::nodes::NodeExtraInfoParams &parameters)
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 socket_type_supported_in_bundle (const eNodeSocketDatatype socket_type, const int ntree_type)
bool socket_type_supported_in_closure (const eNodeSocketDatatype socket_type, const int ntree_type)
const bNodeSocketevaluate_closure_node_internally_linked_input (const bNodeSocket &output_socket)
void geo_viewer_node_log (const bNode &node, const Span< bke::SocketValueVariant * > input_values, geo_eval_log::ViewerNodeLog &r_log)
bool check_tool_context_and_error (GeoNodeExecParams &params)
void search_link_ops_for_tool_node (GatherLinkSearchOpParams &params)
void node_geo_sdf_grid_error_not_levelset (GeoNodeExecParams &params)
const EnumPropertyItemgrid_data_type_socket_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 node_geo_exec_with_too_old_openvdb (GeoNodeExecParams &params)
void get_closest_in_bvhtree (bke::BVHTreeFromMesh &tree_data, const VArray< float3 > &positions, const IndexMask &mask, MutableSpan< int > r_indices, MutableSpan< float > r_distances_sq, MutableSpan< float3 > r_positions)
void mix_baked_data_item (eNodeSocketDatatype socket_type, SocketValueVariant &prev, const SocketValueVariant &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_enable_output_node_lazy_function (const bNode &node, GeometryNodesLazyFunctionGraphInfo &own_lf_graph_info)
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_export::Clusterget_dot_cluster_for_context (dot_export::DirectedGraph &digraph, const DTreeContext *context, Map< const DTreeContext *, dot_export::Cluster * > &dot_clusters)
bool operator== (const BundleSignature &a, const BundleSignature &b)
bool operator!= (const BundleSignature &a, const BundleSignature &b)
static bool is_valid_key (const StringRef key)
static Vector< StringRefsplit_path (const StringRef path)
NodeSocketInterfaceStructureType get_structure_type_for_bundle_signature (const bNodeSocket &socket, const NodeSocketInterfaceStructureType stored_structure_type, const bool allow_auto_structure_type)
static geo_log::GeoTreeLogget_root_tree_log (const NodesModifierData &nmd)
static NodesModifierDataget_modifier_data (Main &bmain, const wmWindowManager &wm, const ModifierSearchData &data)
static void layer_name_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
static void layer_name_search_exec_fn (bContext *C, void *data_v, void *item_v)
static void add_layer_name_search_button (DrawGroupInputsContext &ctx, uiLayout *layout, const bNodeTreeInterfaceSocket &socket)
static void attribute_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
static void attribute_search_exec_fn (bContext *C, void *data_v, void *item_v)
static void add_attribute_search_button (DrawGroupInputsContext &ctx, uiLayout *layout, const StringRefNull rna_path_attribute_name, const bNodeTreeInterfaceSocket &socket)
static void add_attribute_search_or_value_buttons (DrawGroupInputsContext &ctx, uiLayout *layout, const StringRefNull rna_path, const bNodeTreeInterfaceSocket &socket, const std::optional< StringRefNull > use_name=std::nullopt)
static NodesModifierPanelfind_panel_by_id (NodesModifierData &nmd, const int id)
static void draw_property_for_socket (DrawGroupInputsContext &ctx, uiLayout *layout, const bNodeTreeInterfaceSocket &socket, const std::optional< StringRef > parent_name=std::nullopt)
static bool interface_panel_has_socket (DrawGroupInputsContext &ctx, const bNodeTreeInterfacePanel &interface_panel)
static bool interface_panel_affects_output (DrawGroupInputsContext &ctx, const bNodeTreeInterfacePanel &panel)
static void draw_interface_panel_content (DrawGroupInputsContext &ctx, uiLayout *layout, const bNodeTreeInterfacePanel &interface_panel, const bool skip_first=false, const std::optional< StringRef > parent_name=std::nullopt)
static void draw_interface_panel_as_panel (DrawGroupInputsContext &ctx, uiLayout &layout, const bNodeTreeInterfacePanel &interface_panel)
static std::string get_node_warning_panel_name (const int num_errors, const int num_warnings, const int num_infos)
static void draw_warnings (const bContext *C, const NodesModifierData &nmd, uiLayout *layout, PointerRNA *md_ptr)
static bool has_output_attribute (const bNodeTree *tree)
static void draw_property_for_output_socket (DrawGroupInputsContext &ctx, uiLayout *layout, const bNodeTreeInterfaceSocket &socket)
static void draw_output_attributes_panel (DrawGroupInputsContext &ctx, uiLayout *layout)
static void draw_bake_panel (uiLayout *layout, PointerRNA *modifier_ptr)
static void draw_named_attributes_panel (uiLayout *layout, NodesModifierData &nmd)
static void draw_manage_panel (const bContext *C, uiLayout *layout, PointerRNA *modifier_ptr, NodesModifierData &nmd)
void draw_geometry_nodes_modifier_ui (const bContext &C, PointerRNA *modifier_ptr, uiLayout &layout)
void draw_geometry_nodes_operator_redo_ui (const bContext &C, wmOperator &op, bNodeTree &tree, geo_eval_log::GeoTreeLog *tree_log)
bool operator== (const ClosureSignature &a, const ClosureSignature &b)
bool operator!= (const ClosureSignature &a, const ClosureSignature &b)
void evaluate_closure_eagerly (const Closure &closure, ClosureEagerEvalParams &params)
LazyFunctionbuild_closure_zone_lazy_function (ResourceScope &scope, const bNodeTree &btree, const bke::bNodeTreeZone &zone, ZoneBuildInfo &zone_info, const ZoneBodyFunction &body_fn)
EvaluateClosureFunction build_evaluate_closure_node_lazy_function (ResourceScope &scope, const bNode &bnode)
static void add_eval_dependencies_from_socket (const bNodeSocket &socket, GeometryNodesEvalDependencies &deps)
static void add_eval_dependencies_from_node_data (const bNodeTree &tree, GeometryNodesEvalDependencies &deps)
static bool has_enabled_nodes_of_type (const bNodeTree &tree, const blender::StringRefNull type_idname)
static void add_own_transform_dependencies (const bNodeTree &tree, GeometryNodesEvalDependencies &deps)
static bool needs_scene_render_params (const bNodeTree &ntree)
static void gather_geometry_nodes_eval_dependencies (const bNodeTree &ntree, GeometryNodesEvalDependencies &deps, FunctionRef< const GeometryNodesEvalDependencies *(const bNodeTree &group)> get_group_deps)
GeometryNodesEvalDependencies gather_geometry_nodes_eval_dependencies_with_cache (const bNodeTree &ntree)
static void gather_geometry_nodes_eval_dependencies_recursive_impl (const bNodeTree &ntree, Map< const bNodeTree *, GeometryNodesEvalDependencies > &deps_by_tree)
GeometryNodesEvalDependencies gather_geometry_nodes_eval_dependencies_recursive (const bNodeTree &ntree)
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 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 nodes::StructureType structure_type, 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 bke::SocketValueVariant init_socket_cpp_value_from_property (const IDProperty &property, const eNodeSocketDatatype socket_value_type)
std::optional< StringRefinput_attribute_name_get (const IDProperty *properties, const bNodeTreeInterfaceSocket &io_input)
static bke::SocketValueVariant initialize_group_input (const bNodeTree &tree, const IDProperty *properties, const int input_index)
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 Span< const bke::GeometryComponent::Type > component_types)
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)
Vector< InferenceValueget_geometry_nodes_input_inference_values (const bNodeTree &btree, const IDProperty *properties, ResourceScope &scope)
static std::optional< AttrDomainget_foreach_attribute_propagation_target_domain (const GeometryComponent::Type component_type)
LazyFunctionbuild_foreach_geometry_element_zone_lazy_function (ResourceScope &scope, const bNodeTree &btree, const bke::bNodeTreeZone &zone, ZoneBuildInfo &zone_info, const ZoneBodyFunction &body_fn)
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)
void construct_socket_default_value (const bke::bNodeSocketType &stype, void *r_value)
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, GeoNodesUserData *user_data)
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)
bool 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, GeoNodesUserData *user_data, std::string &r_error_message)
std::optional< SocketValueVariantimplicitly_convert_socket_value (const bke::bNodeSocketType &from_type, const SocketValueVariant &from_value, const bke::bNodeSocketType &to_type)
const LazyFunctionbuild_implicit_conversion_lazy_function (const bke::bNodeSocketType &from_type, const bke::bNodeSocketType &to_type, ResourceScope &scope)
static bool gizmo_is_used (const GeoNodesUserData &user_data, const lf::FunctionNode &lf_gizmo_node)
bool should_log_socket_values_for_context (const GeoNodesUserData &user_data, const ComputeContextHash hash)
void report_from_multi_function (const mf::Context &context, NodeWarningType type, std::string message)
static bool ignore_zone_bsocket (const bNodeSocket &bsocket)
void initialize_zone_wrapper (const bNodeTreeZone &zone, ZoneBuildInfo &zone_info, const ZoneBodyFunction &body_fn, const bool expose_all_reference_sets, Vector< lf::Input > &r_inputs, Vector< lf::Output > &r_outputs)
std::string zone_wrapper_input_name (const ZoneBuildInfo &zone_info, const bNodeTreeZone &zone, const Span< lf::Input > inputs, const int lf_socket_i)
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::unique_ptr< GeometryNodesLazyFunctionGraphInfoensure_geometry_nodes_lazy_function_graph_impl (const bNodeTree &btree)
const GeometryNodesLazyFunctionGraphInfoensure_geometry_nodes_lazy_function_graph (const bNodeTree &btree)
std::optional< FoundNestedNodeIDfind_nested_node_id (const GeoNodesUserData &user_data, const int node_id)
static const IDget_only_evaluated_id (const Depsgraph &depsgraph, const ID &id_orig)
static ImplicitSharingPtr sharing_ptr_for_array (void *data, const int64_t size, const CPPType &type)
static ImplicitSharingPtr sharing_ptr_for_value (void *data, const CPPType &type)
LazyFunctionbuild_repeat_zone_lazy_function (ResourceScope &scope, const bNodeTree &btree, const bke::bNodeTreeZone &zone, ZoneBuildInfo &zone_info, const ZoneBodyFunction &body_fn)
int node_warning_type_icon (const NodeWarningType type)
int node_warning_type_severity (const NodeWarningType type)
ListPtr evaluate_field_to_list (GField field, const int64_t count)
static ListPtr create_repeated_list (ListPtr list, const int64_t dst_size)
static void add_list_to_params (mf::ParamsBuilder &params, const mf::ParamType &param_type, const List &list)
void execute_multi_function_on_value_variant__list (const MultiFunction &fn, const Span< SocketValueVariant * > input_values, const Span< SocketValueVariant * > output_values, GeoNodesUserData *user_data)
static const mf::MultiFunction * get_base_multi_function (const bNode &node)
void node_math_build_multi_function (NodeMultiFunctionBuilder &builder)
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 BaseSocketDeclarationBuilderbuild_interface_socket_declaration (const bNodeTree &tree, const bNodeTreeInterfaceSocket &io_socket, const std::optional< StructureType > structure_type, const eNodeSocketInOut in_out, DeclarationListBuilder &b)
static void node_group_declare_panel_recursive (DeclarationListBuilder &b, const bNode &node, const bNodeTree &group, const Map< const bNodeTreeInterfaceSocket *, StructureType > &structure_type_by_socket, const bNodeTreeInterfacePanel &io_parent_panel, const bool is_root)
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 (blender::bke::NodeInsertLinkParams &params)
static bool group_output_insert_link (blender::bke::NodeInsertLinkParams &params)
static void node_group_input_layout (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void node_group_output_layout (uiLayout *layout, bContext *C, PointerRNA *ptr)
static void reset_declaration (NodeDeclaration &declaration)
void build_node_declaration (const bke::bNodeType &typeinfo, NodeDeclaration &r_declaration, const bNodeTree *ntree, const bNode *node)
static void assert_valid_panels_recursive (const NodeDeclaration &node_decl, const Span< const ItemDeclaration * > items, Vector< const SocketDeclaration * > &r_flat_inputs, Vector< const SocketDeclaration * > &r_flat_outputs)
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)
static const bNodeSocketfind_single_menu_input (const bNode &node)
std::optional< ImplicitInputValueFnget_implicit_input_value_fn (const NodeDefaultInputType type)
bool socket_type_supports_default_input_type (const bke::bNodeSocketType &socket_type, const NodeDefaultInputType input_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)
PropertyRNARNA_def_node_boolean (StructRNA *srna, const char *identifier, const char *ui_name, const char *ui_description, const BooleanRNAAccessors accessors, std::optional< bool > default_value, 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)
bool socket_type_always_single (const eNodeSocketDatatype socket_type)
bool inline_shader_node_tree (const bNodeTree &src_tree, bNodeTree &dst_tree, InlineShaderNodeTreeParams &params)
void search_link_ops_for_declarations (GatherLinkSearchOpParams &params, Span< SocketDeclaration * > declarations)
void search_link_ops_for_basic_node (GatherLinkSearchOpParams &params)
static BundleSyncState get_sync_state_separate_bundle (const SpaceNode &snode, const bNode &separate_bundle_node, const bNodeSocket *src_bundle_socket=nullptr)
static BundleSyncState get_sync_state_combine_bundle (const SpaceNode &snode, const bNode &combine_bundle_node, const bNodeSocket *src_bundle_socket=nullptr)
static ClosureSyncState get_sync_state_closure_output (const SpaceNode &snode, const bNode &closure_output_node, const bNodeSocket *src_closure_socket=nullptr)
static ClosureSyncState get_sync_state_evaluate_closure (const SpaceNode &snode, const bNode &evaluate_closure_node, const bNodeSocket *src_closure_socket=nullptr)
void sync_sockets_separate_bundle (SpaceNode &snode, bNode &separate_bundle_node, ReportList *reports, const bNodeSocket *src_bundle_socket)
void sync_sockets_combine_bundle (SpaceNode &snode, bNode &combine_bundle_node, ReportList *reports, const bNodeSocket *src_bundle_socket)
void sync_sockets_evaluate_closure (SpaceNode &snode, bNode &evaluate_closure_node, ReportList *reports, const bNodeSocket *src_closure_socket)
void sync_sockets_closure (SpaceNode &snode, bNode &closure_input_node, bNode &closure_output_node, ReportList *reports, const bNodeSocket *src_closure_socket)
static std::string get_bundle_sync_tooltip (const nodes::BundleSignature &old_signature, const nodes::BundleSignature &new_signature)
static std::string get_closure_sync_tooltip (const nodes::ClosureSignature &old_signature, const nodes::ClosureSignature &new_signature)
void sync_node (bContext &C, bNode &node, ReportList *reports)
std::string sync_node_description_get (const bContext &C, const bNode &node)
bool node_can_sync_sockets (const bContext &C, const bNodeTree &, const bNode &node)
void node_can_sync_cache_clear (Main &bmain)
static bool is_evaluate_closure_node_input (const SocketInContext &socket)
static bool is_closure_zone_output_socket (const SocketInContext &socket)
static bool use_link_for_tracing (const bNodeLink &link)
static Vector< SocketInContextfind_origin_sockets_through_contexts (SocketInContext start_socket, bke::ComputeContextCache &compute_context_cache, FunctionRef< bool(const SocketInContext &)> handle_possible_origin_socket_fn, bool find_all)
static Vector< SocketInContextfind_target_sockets_through_contexts (const SocketInContext start_socket, bke::ComputeContextCache &compute_context_cache, const FunctionRef< bool(const SocketInContext &)> handle_possible_target_socket_fn, const bool find_all)
const ComputeContextcompute_context_for_closure_evaluation (const ComputeContext *closure_socket_context, const bNodeSocket &closure_socket, bke::ComputeContextCache &compute_context_cache, const std::optional< ClosureSourceLocation > &source_location)
static Vector< SocketInContextfind_origin_sockets_through_contexts (const SocketInContext start_socket, bke::ComputeContextCache &compute_context_cache, const FunctionRef< bool(const SocketInContext &)> handle_possible_origin_socket_fn, const bool find_all)
LinkedBundleSignatures gather_linked_target_bundle_signatures (const ComputeContext *bundle_socket_context, const bNodeSocket &bundle_socket, bke::ComputeContextCache &compute_context_cache)
LinkedBundleSignatures gather_linked_origin_bundle_signatures (const ComputeContext *bundle_socket_context, const bNodeSocket &bundle_socket, bke::ComputeContextCache &compute_context_cache)
LinkedClosureSignatures gather_linked_target_closure_signatures (const ComputeContext *closure_socket_context, const bNodeSocket &closure_socket, bke::ComputeContextCache &compute_context_cache)
LinkedClosureSignatures gather_linked_origin_closure_signatures (const ComputeContext *closure_socket_context, const bNodeSocket &closure_socket, bke::ComputeContextCache &compute_context_cache)
std::optional< NodeInContextfind_origin_index_menu_switch (const SocketInContext &src_socket, bke::ComputeContextCache &compute_context_cache)
bool execute_multi_function_on_value_variant__volume_grid (const mf::MultiFunction &, const Span< bke::SocketValueVariant * >, const Span< bke::SocketValueVariant * >, std::string &r_error_message)
template<typename T>
const bke::bNodeSocketTypesocket_type_info_by_static_type ()
template<typename T>
constexpr bool is_valid_internal_bundle_item_type ()
template<typename T, typename Fn>
void to_stored_type (T &&value, Fn &&fn)
bool execute_multi_function_on_value_variant (const mf::MultiFunction &fn, const std::shared_ptr< mf::MultiFunction > &owned_fn, Span< bke::SocketValueVariant * > input_values, Span< bke::SocketValueVariant * > output_values, GeoNodesUserData *user_data, std::string &r_error_message)
bool execute_multi_function_on_value_variant (const std::shared_ptr< mf::MultiFunction > &owned_fn, const Span< bke::SocketValueVariant * > input_values, const Span< bke::SocketValueVariant * > output_values, GeoNodesUserData *user_data, std::string &r_error_message)
bool execute_multi_function_on_value_variant (const mf::MultiFunction &fn, const Span< bke::SocketValueVariant * > input_values, const Span< bke::SocketValueVariant * > output_values, GeoNodesUserData *user_data, std::string &r_error_message)
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)

Variables

constexpr StringRef input_use_attribute_suffix = "_use_attribute"
constexpr StringRef input_attribute_name_suffix = "_attribute_name"
template<typename T>
constexpr bool is_GeoNodesMultiInput_v = false
template<typename T>
constexpr bool is_GeoNodesMultiInput_v< GeoNodesMultiInput< T > > = true

Typedef Documentation

◆ BundlePtr

◆ ClosurePtr

◆ CustomSocketDrawFn

Definition at line 199 of file NOD_node_declaration.hh.

◆ DrawNodeLayoutFn

Definition at line 505 of file NOD_node_declaration.hh.

◆ ImplicitInputValueFn

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

Definition at line 727 of file NOD_node_declaration.hh.

◆ InputSocketUsageInferenceFn

Initial value:
std::function<std::optional<bool>(
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]

Definition at line 200 of file NOD_node_declaration.hh.

◆ ItemDeclarationPtr

Definition at line 178 of file NOD_node_declaration.hh.

◆ JoinReferenceSetsCache

◆ ListPtr

◆ PanelDeclarationPtr

Definition at line 616 of file NOD_node_declaration.hh.

◆ ReferenceSetIndex

◆ SocketDeclarationPtr

Definition at line 503 of file NOD_node_declaration.hh.

Enumeration Type Documentation

◆ AttrDomain [1/2]

enum class blender::bke::AttrDomain : int8_t
strong

Definition at line 63 of file BKE_attribute.hh.

◆ AttrDomain [2/2]

enum class blender::bke::AttrDomain : int8_t
strong

Definition at line 63 of file BKE_attribute.hh.

◆ CompositorInputRealizationMode

An enum that maps to the #compositor::InputRealizationMode.

Enumerator
None 
Transforms 
OperationDomain 

Definition at line 58 of file NOD_node_declaration.hh.

◆ InputSocketFieldType

enum class blender::nodes::InputSocketFieldType : int8_t
strong
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 34 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 317 of file NOD_geometry_nodes_lazy_function.hh.

◆ NamedAttributeUsage

◆ NodeSyncState

enum class blender::nodes::NodeSyncState
strong
Enumerator
Synced 
CanBeSynced 
NoSyncSource 
ConflictingSyncSources 

Definition at line 39 of file sync_sockets.cc.

◆ NodeWarningType

These values are also written to .blend files, so don't change them lightly.

Enumerator
Error 
Warning 
Info 

Definition at line 10 of file NOD_geometry_nodes_warning.hh.

◆ OutputSocketFieldType

enum class blender::nodes::OutputSocketFieldType : int8_t
strong
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 43 of file NOD_node_declaration.hh.

◆ ReferenceSetType [1/2]

◆ ReferenceSetType [2/2]

Function Documentation

◆ add_attribute_search_button()

◆ add_attribute_search_or_value_buttons()

◆ add_eval_dependencies_from_node_data()

void blender::nodes::add_eval_dependencies_from_node_data ( const bNodeTree & tree,
GeometryNodesEvalDependencies & deps )
static

◆ add_eval_dependencies_from_socket()

◆ add_layer_name_search_button()

◆ add_list_to_params()

void blender::nodes::add_list_to_params ( mf::ParamsBuilder & params,
const mf::ParamType & param_type,
const List & list )
static

◆ add_own_transform_dependencies()

◆ assert_valid_panels_recursive()

void blender::nodes::assert_valid_panels_recursive ( const NodeDeclaration & node_decl,
const Span< const ItemDeclaration * > items,
Vector< const SocketDeclaration * > & r_flat_inputs,
Vector< const SocketDeclaration * > & r_flat_outputs )
static

◆ attribute_search_exec_fn()

void blender::nodes::attribute_search_exec_fn ( bContext * C,
void * data_v,
void * item_v )
static

◆ attribute_search_update_fn()

◆ build_closure_zone_lazy_function()

LazyFunction & blender::nodes::build_closure_zone_lazy_function ( ResourceScope & scope,
const bNodeTree & btree,
const bke::bNodeTreeZone & zone,
ZoneBuildInfo & zone_info,
const ZoneBodyFunction & body_fn )

◆ build_evaluate_closure_node_lazy_function()

◆ build_foreach_geometry_element_zone_lazy_function()

LazyFunction & blender::nodes::build_foreach_geometry_element_zone_lazy_function ( ResourceScope & scope,
const bNodeTree & btree,
const bke::bNodeTreeZone & zone,
ZoneBuildInfo & zone_info,
const ZoneBodyFunction & body_fn )

◆ build_implicit_conversion_lazy_function()

◆ build_interface_socket_declaration()

BaseSocketDeclarationBuilder & blender::nodes::build_interface_socket_declaration ( const bNodeTree & tree,
const bNodeTreeInterfaceSocket & io_socket,
const std::optional< StructureType > structure_type,
const eNodeSocketInOut in_out,
DeclarationListBuilder & b )
static

◆ build_node_declaration()

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

◆ build_repeat_zone_lazy_function()

LazyFunction & blender::nodes::build_repeat_zone_lazy_function ( ResourceScope & scope,
const bNodeTree & btree,
const bke::bNodeTreeZone & zone,
ZoneBuildInfo & zone_info,
const ZoneBodyFunction & body_fn )

◆ check_tool_context_and_error()

◆ cmp_node_scene_time_declare()

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

◆ compute_context_for_closure_evaluation()

const ComputeContext * blender::nodes::compute_context_for_closure_evaluation ( const ComputeContext * closure_socket_context,
const bNodeSocket & closure_socket,
bke::ComputeContextCache & compute_context_cache,
const std::optional< ClosureSourceLocation > & source_location )
nodiscard

Attempts to find a compute context that the closure is evaluated in. If none is found, null is returned. If multiple are found, it currently picks the first one it finds which is somewhat arbitrary.

Definition at line 301 of file trace_values.cc.

References blender::nodes::SocketInContext::context, find_target_sockets_through_contexts(), blender::bke::ComputeContextCache::for_evaluate_closure(), bNode::identifier, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), is_evaluate_closure_node_input(), and blender::nodes::SocketInContext::owner_node().

◆ construct_socket_default_value()

◆ create_repeated_list()

◆ do_forward_compat_versioning()

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 379 of file node_socket.cc.

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

Referenced by refresh_node_sockets_and_panels().

◆ draw_bake_button_row()

◆ draw_bake_data_block_list_item()

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

void blender::nodes::draw_bake_panel ( uiLayout * layout,
PointerRNA * modifier_ptr )
static

Definition at line 883 of file geometry_nodes_caller_ui.cc.

References col, uiLayout::column(), IFACE_, and UI_ITEM_NONE.

Referenced by draw_manage_panel().

◆ draw_common_bake_settings()

◆ draw_data_blocks()

◆ draw_geometry_nodes_modifier_ui()

◆ draw_geometry_nodes_operator_redo_ui()

◆ draw_interface_panel_as_panel()

◆ draw_interface_panel_content()

void blender::nodes::draw_interface_panel_content ( DrawGroupInputsContext & ctx,
uiLayout * layout,
const bNodeTreeInterfacePanel & interface_panel,
const bool skip_first = false,
const std::optional< StringRef > parent_name = std::nullopt )
static

◆ draw_manage_panel()

void blender::nodes::draw_manage_panel ( const bContext * C,
uiLayout * layout,
PointerRNA * modifier_ptr,
NodesModifierData & nmd )
static

◆ draw_named_attributes_panel()

◆ draw_output_attributes_panel()

void blender::nodes::draw_output_attributes_panel ( DrawGroupInputsContext & ctx,
uiLayout * layout )
static

◆ draw_property_for_output_socket()

◆ draw_property_for_socket()

◆ draw_warnings()

◆ 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 4213 of file geometry_nodes_lazy_function.cc.

References ensure_geometry_nodes_lazy_function_graph(), ensure_geometry_nodes_lazy_function_graph_impl(), and bNodeTree::runtime.

Referenced by ensure_geometry_nodes_lazy_function_graph(), execute_geometry_nodes_on_geometry(), blender::modifyGeometry(), 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().

◆ ensure_geometry_nodes_lazy_function_graph_impl()

◆ enum_items_filter()

◆ evaluate_closure_eagerly()

◆ evaluate_closure_node_internally_linked_input()

const bNodeSocket * blender::nodes::evaluate_closure_node_internally_linked_input ( const bNodeSocket & output_socket)

◆ evaluate_field_to_list()

◆ execute_geometry_nodes_on_geometry()

bke::GeometrySet blender::nodes::execute_geometry_nodes_on_geometry ( const bNodeTree & btree,
const IDProperty * properties,
const ComputeContext & base_compute_context,
GeoNodesCallData & call_data,
bke::GeometrySet input_geometry )

Definition at line 835 of file geometry_nodes_execute.cc.

References blender::LinearAllocator< Allocator >::allocate(), blender::ResourceScope::allocator(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::nodes::GeoNodesUserData::call_data, blender::nodes::GeoNodesUserData::compute_context, blender::ResourceScope::construct(), blender::fn::lazy_function::LazyFunction::destruct_storage(), ensure_geometry_nodes_lazy_function_graph(), blender::fn::lazy_function::LazyFunction::execute(), extract(), blender::nodes::GeometryNodesGroupFunction::function, blender::nodes::GeometryNodesLazyFunctionGraphInfo::function, blender::nodes::GeometryNodesGroupFunction::geometry_outputs, i, blender::Array< T, InlineBufferCapacity, Allocator >::index_range(), blender::fn::lazy_function::LazyFunction::init_storage(), initialize_group_input(), blender::nodes::GeometryNodesGroupFunction::input_usages, blender::fn::lazy_function::LazyFunction::inputs(), blender::nodes::GeometryNodesGroupFunction::inputs, blender::nodes::GeometryNodesGroupFunction::main, blender::nodes::GeometryNodesGroupFunction::output_usages, blender::fn::lazy_function::LazyFunction::outputs(), blender::nodes::GeometryNodesGroupFunction::outputs, ptr, blender::nodes::GeometryNodesGroupFunction::range, blender::nodes::GeometryNodesGroupFunction::references_to_propagate, blender::nodes::GeoNodesCallData::root_ntree, blender::bke::SocketValueVariant::set(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), SOCK_CUSTOM, SOCK_GEOMETRY, blender::fn::lazy_function::Context::storage, store_output_attributes(), timer, blender::bke::bNodeSocketType::type, blender::fn::lazy_function::Output::type, blender::fn::lazy_function::Unused, and blender::fn::lazy_function::Used.

Referenced by blender::modifyGeometry(), and blender::ed::geometry::run_node_group_exec().

◆ execute_multi_function_on_value_variant() [1/4]

bool blender::nodes::execute_multi_function_on_value_variant ( const mf::MultiFunction & fn,
const Span< bke::SocketValueVariant * > input_values,
const Span< bke::SocketValueVariant * > output_values,
GeoNodesUserData * user_data,
std::string & r_error_message )
inlinenodiscard

◆ execute_multi_function_on_value_variant() [2/4]

bool blender::nodes::execute_multi_function_on_value_variant ( const mf::MultiFunction & fn,
const std::shared_ptr< mf::MultiFunction > & owned_fn,
Span< bke::SocketValueVariant * > input_values,
Span< bke::SocketValueVariant * > output_values,
GeoNodesUserData * user_data,
std::string & r_error_message )
nodiscard

Executes a multi-function. If all inputs are single values, the results will also be single values. If any input is a field, the outputs will also be fields.

◆ execute_multi_function_on_value_variant() [3/4]

bool 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,
GeoNodesUserData * user_data,
std::string & r_error_message )
nodiscard

Executes a multi-function. If all inputs are single values, the results will also be single values. If any input is a field, the outputs will also be fields.

Definition at line 498 of file geometry_nodes_lazy_function.cc.

References execute_multi_function_on_value_variant__field(), execute_multi_function_on_value_variant__list(), execute_multi_function_on_value_variant__single(), execute_multi_function_on_value_variant__volume_grid(), i, blender::Span< T >::index_range(), blender::bke::SocketValueVariant::is_context_dependent_field(), blender::bke::SocketValueVariant::is_list(), and blender::bke::SocketValueVariant::is_volume_grid().

Referenced by blender::nodes::LazyFunctionForImplicitConversion::execute_impl(), blender::nodes::LazyFunctionForMultiFunctionNode::execute_impl(), execute_multi_function_on_value_variant(), execute_multi_function_on_value_variant(), implicitly_convert_socket_value(), blender::nodes::node_geo_curve_sample_cc::node_geo_exec(), blender::nodes::node_geo_image_texture_cc::node_geo_exec(), blender::nodes::node_geo_list_get_item_cc::node_geo_exec(), blender::nodes::node_geo_proximity_cc::node_geo_exec(), blender::nodes::node_geo_raycast_cc::node_geo_exec(), blender::nodes::node_geo_sample_grid_cc::node_geo_exec(), blender::nodes::node_geo_sample_grid_index_cc::node_geo_exec(), blender::nodes::node_geo_sample_index_cc::node_geo_exec(), blender::nodes::node_geo_sample_nearest_cc::node_geo_exec(), and blender::nodes::node_geo_sample_nearest_surface_cc::node_geo_exec().

◆ execute_multi_function_on_value_variant() [4/4]

bool blender::nodes::execute_multi_function_on_value_variant ( const std::shared_ptr< mf::MultiFunction > & owned_fn,
const Span< bke::SocketValueVariant * > input_values,
const Span< bke::SocketValueVariant * > output_values,
GeoNodesUserData * user_data,
std::string & r_error_message )
inlinenodiscard

◆ execute_multi_function_on_value_variant__field()

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

◆ execute_multi_function_on_value_variant__single()

◆ execute_multi_function_on_value_variant__volume_grid()

bool blender::nodes::execute_multi_function_on_value_variant__volume_grid ( const mf::MultiFunction & fn,
const Span< SocketValueVariant * > input_values,
const Span< SocketValueVariant * > output_values,
std::string & r_error_message )
nodiscard

Execute the multi-function with the given parameters. It is assumed that at least one of the inputs is a grid. Otherwise the topology of the output grids is not known.

Parameters
fnThe multi-function to call.
input_valuesAll input values which may be grids, fields or single values.
output_valuesWhere the output grids will be stored.
r_error_messageAn error message that is set if false is returned.
Returns
False if an error occurred. In this case the output values should not be used.

Definition at line 590 of file volume_grid_function_eval.cc.

References TIP_.

Referenced by execute_multi_function_on_value_variant().

◆ find_active_context_recursive()

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

◆ find_nested_node_id()

◆ find_origin_index_menu_switch()

std::optional< NodeInContext > blender::nodes::find_origin_index_menu_switch ( const SocketInContext & src_socket,
bke::ComputeContextCache & compute_context_cache )

◆ find_origin_sockets_through_contexts() [1/2]

Vector< SocketInContext > blender::nodes::find_origin_sockets_through_contexts ( const SocketInContext start_socket,
bke::ComputeContextCache & compute_context_cache,
const FunctionRef< bool(const SocketInContext &)> handle_possible_origin_socket_fn,
const bool find_all )
static

Definition at line 323 of file trace_values.cc.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), BLI_assert, blender::nodes::NodeInContext::context, blender::nodes::SocketInContext::context, blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::extract_vector(), find_origin_sockets_through_contexts(), find_target_sockets_through_contexts(), blender::bke::ComputeContextCache::for_evaluate_closure(), blender::bke::ComputeContextCache::for_group_node(), blender::bke::ComputeContextCache::for_repeat_zone(), blender::bke::ComputeContextCache::for_simulation_zone(), blender::bke::bNodeTreeZones::get_zone_by_socket(), i, bNode::id, bNode::identifier, bNodeSocket::identifier, blender::nodes::NodeInContext::input_socket(), is_closure_zone_output_socket(), blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), is_evaluate_closure_node_input(), blender::bke::EvaluateClosureComputeContext::is_recursive(), blender::bke::bNodeTreeZones::link_between_zones_is_allowed(), NodeClosureOutputItem::name, NodeEvaluateClosureInputItem::name, blender::nodes::NodeInContext::node, blender::nodes::SocketInContext::owner_node(), blender::ComputeContext::parent(), blender::bke::bNodeTreeZone::parent_zone, blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), blender::Stack< T, InlineBufferCapacity, Allocator >::push(), bNodeSocket::runtime, blender::nodes::SocketInContext::socket, bNode::storage, bNode::type_legacy, use_link_for_tracing(), and blender::bke::zone_type_by_node_type().

◆ find_origin_sockets_through_contexts() [2/2]

Vector< SocketInContext > blender::nodes::find_origin_sockets_through_contexts ( SocketInContext start_socket,
bke::ComputeContextCache & compute_context_cache,
FunctionRef< bool(const SocketInContext &)> handle_possible_origin_socket_fn,
bool find_all )
static

◆ find_output_attributes_to_store()

◆ find_panel_by_id()

NodesModifierPanel * blender::nodes::find_panel_by_id ( NodesModifierData & nmd,
const int id )
static

◆ find_single_menu_input()

const bNodeSocket & blender::nodes::find_single_menu_input ( const bNode & node)
static

◆ find_target_sockets_through_contexts()

Vector< SocketInContext > blender::nodes::find_target_sockets_through_contexts ( const SocketInContext start_socket,
bke::ComputeContextCache & compute_context_cache,
const FunctionRef< bool(const SocketInContext &)> handle_possible_target_socket_fn,
const bool find_all )
static

Definition at line 53 of file trace_values.cc.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), BLI_assert, blender::ed::space_node::compute_context_for_zones(), blender::nodes::NodeInContext::context, blender::nodes::SocketInContext::context, blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::extract_vector(), find_origin_sockets_through_contexts(), find_target_sockets_through_contexts(), blender::bke::ComputeContextCache::for_evaluate_closure(), blender::bke::ComputeContextCache::for_group_node(), blender::bke::ComputeContextCache::for_repeat_zone(), blender::bke::ComputeContextCache::for_simulation_zone(), blender::bke::bNodeTreeZones::get_zone_by_node(), blender::bke::bNodeTreeZones::get_zone_by_socket(), blender::bke::bNodeTreeZones::get_zones_to_enter(), i, bNode::id, bNode::identifier, bNodeSocket::identifier, blender::bke::bNodeTreeZone::input_node(), blender::nodes::NodeInContext::input_socket(), is_closure_zone_output_socket(), blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), is_evaluate_closure_node_input(), blender::bke::EvaluateClosureComputeContext::is_recursive(), blender::bke::bNodeTreeZones::link_between_zones_is_allowed(), NodeClosureInputItem::name, NodeEvaluateClosureOutputItem::name, blender::nodes::NodeInContext::output_socket(), blender::nodes::SocketInContext::owner_node(), blender::ComputeContext::parent(), blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), blender::Stack< T, InlineBufferCapacity, Allocator >::push(), blender::nodes::SocketInContext::socket, bNode::storage, and use_link_for_tracing().

Referenced by compute_context_for_closure_evaluation(), find_origin_sockets_through_contexts(), find_target_sockets_through_contexts(), gather_linked_target_bundle_signatures(), and gather_linked_target_closure_signatures().

◆ gather_geometry_nodes_eval_dependencies()

◆ gather_geometry_nodes_eval_dependencies_recursive()

GeometryNodesEvalDependencies blender::nodes::gather_geometry_nodes_eval_dependencies_recursive ( const bNodeTree & ntree)

Finds all evaluation dependencies for the given node. This does not include dependencies that are passed into the node group. It also may not contain all data-blocks referenced by the node tree if some of them can statically be detected to not be used by the evaluation.

Definition at line 236 of file geometry_nodes_dependencies.cc.

References gather_geometry_nodes_eval_dependencies_recursive_impl(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup().

Referenced by blender::depends_on_time(), and blender::update_depsgraph().

◆ gather_geometry_nodes_eval_dependencies_recursive_impl()

◆ gather_geometry_nodes_eval_dependencies_with_cache()

GeometryNodesEvalDependencies blender::nodes::gather_geometry_nodes_eval_dependencies_with_cache ( const bNodeTree & ntree)

Same as above, but assumes that dependencies are already cached on the referenced node groups.

Definition at line 212 of file geometry_nodes_dependencies.cc.

References gather_geometry_nodes_eval_dependencies(), and bNodeTree::runtime.

◆ gather_linked_origin_bundle_signatures()

◆ gather_linked_origin_closure_signatures()

LinkedClosureSignatures blender::nodes::gather_linked_origin_closure_signatures ( const ComputeContext * closure_socket_context,
const bNodeSocket & closure_socket,
bke::ComputeContextCache & compute_context_cache )

◆ gather_linked_target_bundle_signatures()

LinkedBundleSignatures blender::nodes::gather_linked_target_bundle_signatures ( const ComputeContext * bundle_socket_context,
const bNodeSocket & bundle_socket,
bke::ComputeContextCache & compute_context_cache )

◆ gather_linked_target_closure_signatures()

LinkedClosureSignatures blender::nodes::gather_linked_target_closure_signatures ( const ComputeContext * closure_socket_context,
const bNodeSocket & closure_socket,
bke::ComputeContextCache & compute_context_cache )

◆ geo_viewer_node_log()

void blender::nodes::geo_viewer_node_log ( const bNode & node,
const Span< bke::SocketValueVariant * > input_values,
geo_eval_log::ViewerNodeLog & r_log )

◆ get_bake_draw_context()

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

Definition at line 575 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, C, 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, GEO_NODE_BAKE, GEO_NODE_SIMULATION_OUTPUT, 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_bakeable_in_current_context, blender::nodes::BakeDrawContext::is_baked, lock, blender::bke::bake::ModifierCache::mutex, blender::nodes::BakeDrawContext::nmd, blender::nodes::BakeDrawContext::node, NODES_MODIFIER_BAKE_MODE_STILL, blender::nodes::BakeDrawContext::object, RNA_pointer_create_discrete(), NodesModifierData::runtime, blender::bke::bake::ModifierCache::simulation_cache_by_id, blender::nodes::BakeDrawContext::snode, and bNode::type_legacy.

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 860 of file node_geo_bake.cc.

References BLI_assert, GEO_NODE_BAKE, and bNode::type_legacy.

◆ get_bake_state_string()

◆ get_baked_string()

◆ get_base_multi_function()

◆ get_bundle_sync_tooltip()

◆ get_closest_in_bvhtree()

◆ get_closure_sync_tooltip()

◆ get_compositor_group_input_extra_info()

◆ get_compositor_group_output_extra_info()

◆ get_compositor_operation()

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

Definition at line 55 of file node_composite_scene_time.cc.

Referenced by register_node_type_cmp_scene_time().

◆ get_current_socket_identifier_for_future_socket()

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 328 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, bNodeSocket::type, and bNode::type_legacy.

Referenced by do_forward_compat_versioning().

◆ get_default_id_getter()

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

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

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

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

Gives the domain with the smallest number of elements that always exists.

Definition at line 825 of file geometry_nodes_foreach_geometry_element_zone.cc.

Referenced by blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group().

◆ get_geometry_nodes_input_inference_values()

◆ get_group_input_compositor_operation()

compositor::NodeOperation * blender::nodes::get_group_input_compositor_operation ( compositor::Context & context,
DNode node )

Definition at line 144 of file node_composite_group_input.cc.

Referenced by register_node_type_group_input().

◆ get_group_output_compositor_operation()

compositor::NodeOperation * blender::nodes::get_group_output_compositor_operation ( compositor::Context & context,
DNode node )

Definition at line 146 of file node_composite_group_output.cc.

Referenced by register_node_type_group_output().

◆ get_identifier_from_decl() [1/2]

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]

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 303 of file node_socket.cc.

References get_identifier_from_decl().

◆ get_implicit_input_value_fn()

◆ 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 489 of file node_geo_index_switch.cc.

References BLI_assert, GEO_NODE_INDEX_SWITCH, and bNode::type_legacy.

◆ get_init_socket_fn()

◆ 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 590 of file node_geo_menu_switch.cc.

References BLI_assert, GEO_NODE_MENU_SWITCH, and bNode::type_legacy.

◆ 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 598 of file node_geo_menu_switch.cc.

References BLI_assert, GEO_NODE_MENU_SWITCH, and bNode::type_legacy.

◆ get_modifier_data()

NodesModifierData * blender::nodes::get_modifier_data ( Main & bmain,
const wmWindowManager & wm,
const ModifierSearchData & data )
static

◆ get_node_warning_panel_name()

std::string blender::nodes::get_node_warning_panel_name ( const int num_errors,
const int num_warnings,
const int num_infos )
static

Definition at line 742 of file geometry_nodes_caller_ui.cc.

References IFACE_.

Referenced by draw_warnings().

◆ get_only_evaluated_id()

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

◆ get_root_tree_log()

geo_log::GeoTreeLog * blender::nodes::get_root_tree_log ( const NodesModifierData & nmd)
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 902 of file node_geo_simulation.cc.

References BLI_assert, GEO_NODE_SIMULATION_INPUT, and bNode::type_legacy.

◆ get_simulation_output_lazy_function()

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

◆ get_structure_type_for_bundle_signature()

◆ get_switch_node_lazy_function()

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

Definition at line 299 of file node_geo_switch.cc.

References BLI_assert, GEO_NODE_SWITCH, and bNode::type_legacy.

◆ get_sync_state_closure_output()

◆ get_sync_state_combine_bundle()

◆ get_sync_state_evaluate_closure()

◆ get_sync_state_separate_bundle()

◆ get_warning_node_lazy_function()

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

Definition at line 124 of file node_geo_warning.cc.

References BLI_assert, GEO_NODE_WARNING, and bNode::type_legacy.

◆ gizmo_is_used()

◆ grid_data_type_socket_items_filter_fn()

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

◆ grid_socket_type_items_filter_fn()

◆ group_input_declare()

◆ group_input_insert_link()

◆ group_output_declare()

◆ group_output_insert_link()

◆ has_enabled_nodes_of_type()

bool blender::nodes::has_enabled_nodes_of_type ( const bNodeTree & tree,
const blender::StringRefNull type_idname )
static

◆ has_output_attribute()

bool blender::nodes::has_output_attribute ( const bNodeTree * tree)
static

◆ hide_new_group_input_sockets()

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 405 of file node_socket.cc.

References BLI_assert, ListBase::last, and bNode::outputs.

Referenced by refresh_node_sockets_and_panels().

◆ id_name_or_value_prop()

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

◆ id_property_create_from_socket()

std::unique_ptr< IDProperty, bke::idprop::IDPropertyDeleter > blender::nodes::id_property_create_from_socket ( const bNodeTreeInterfaceSocket & socket,
const nodes::StructureType structure_type,
const bool use_name_for_ids )

Definition at line 116 of file geometry_nodes_execute.cc.

References IDPropertyUIDataFloat::base, IDPropertyUIDataInt::base, IDPropertyUIDataString::base, BLI_strdup(), blender::bke::idprop::create(), blender::bke::idprop::create_bool(), IDPropertyUIDataFloat::default_array, IDPropertyUIDataFloat::default_array_len, IDPropertyUIDataBool::default_value, IDPropertyUIDataFloat::default_value, IDPropertyUIDataInt::default_value, IDPropertyUIDataString::default_value, bNodeSocketValueVector::dimensions, FLT_MAX, i, ID_GR, ID_IM, ID_MA, id_name_or_value_prop(), ID_OB, id_property_int_update_enum_items(), ID_TE, bNodeTreeInterfaceSocket::identifier, IDP_ui_data_ensure(), is_layer_selection_field(), bNodeSocketValueFloat::max, bNodeSocketValueInt::max, bNodeSocketValueVector::max, MEM_malloc_arrayN(), bNodeSocketValueFloat::min, bNodeSocketValueInt::min, bNodeSocketValueVector::min, PROP_COLOR, PROP_EULER, IDPropertyUIData::rna_subtype, SOCK_BOOLEAN, SOCK_BUNDLE, SOCK_CLOSURE, SOCK_COLLECTION, SOCK_CUSTOM, SOCK_FLOAT, SOCK_GEOMETRY, SOCK_IMAGE, SOCK_INT, SOCK_MATERIAL, SOCK_MATRIX, SOCK_MENU, SOCK_OBJECT, SOCK_RGBA, SOCK_ROTATION, SOCK_SHADER, SOCK_STRING, SOCK_TEXTURE, SOCK_VECTOR, bNodeTreeInterfaceSocket::socket_data, IDPropertyUIDataFloat::soft_max, IDPropertyUIDataInt::soft_max, IDPropertyUIDataFloat::soft_min, IDPropertyUIDataInt::soft_min, bNodeSocketValueFloat::subtype, bNodeSocketValueInt::subtype, bNodeSocketValueString::subtype, bNodeSocketValueVector::subtype, blender::Span< T >::take_front(), blender::bke::bNodeSocketType::type, bNodeSocketValueBoolean::value, bNodeSocketValueCollection::value, bNodeSocketValueFloat::value, bNodeSocketValueImage::value, bNodeSocketValueInt::value, bNodeSocketValueMaterial::value, bNodeSocketValueMenu::value, bNodeSocketValueObject::value, bNodeSocketValueRGBA::value, bNodeSocketValueString::value, bNodeSocketValueTexture::value, bNodeSocketValueVector::value, and bNodeSocketValueRotation::value_euler.

Referenced by update_input_properties_from_node_tree().

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

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

◆ implicitly_convert_socket_value()

◆ init_socket_cpp_value_from_property()

◆ initialize_group_input()

◆ initialize_zone_wrapper()

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

◆ inline_shader_node_tree()

◆ input_attribute_name_get()

◆ 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 47 of file geometry_nodes_execute.cc.

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

Referenced by draw_property_for_socket(), and initialize_group_input().

◆ interface_panel_affects_output()

bool blender::nodes::interface_panel_affects_output ( DrawGroupInputsContext & ctx,
const bNodeTreeInterfacePanel & panel )
static

◆ interface_panel_has_socket()

bool blender::nodes::interface_panel_has_socket ( DrawGroupInputsContext & ctx,
const bNodeTreeInterfacePanel & interface_panel )
static

◆ is_closure_zone_output_socket()

bool blender::nodes::is_closure_zone_output_socket ( const SocketInContext & socket)
static

◆ is_evaluate_closure_node_input()

◆ is_valid_internal_bundle_item_type()

template<typename T>
bool blender::nodes::is_valid_internal_bundle_item_type ( )
constexpr

◆ is_valid_key()

◆ layer_name_search_exec_fn()

void blender::nodes::layer_name_search_exec_fn ( bContext * C,
void * data_v,
void * item_v )
static

◆ layer_name_search_update_fn()

◆ 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 422 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 371 of file node_declaration.cc.

References socket_type_to_static_decl_type().

◆ mix_baked_data_item()

◆ needs_scene_render_params()

bool blender::nodes::needs_scene_render_params ( const bNodeTree & ntree)
static

◆ node_can_sync_cache_clear()

◆ node_can_sync_sockets()

bool blender::nodes::node_can_sync_sockets ( const bContext & C,
const bNodeTree & tree,
const bNode & node )

◆ node_geo_exec_with_missing_openvdb()

void blender::nodes::node_geo_exec_with_missing_openvdb ( GeoNodeExecParams & params)

Definition at line 107 of file node_geometry_util.cc.

References Error, params, and TIP_.

Referenced by blender::nodes::node_geo_distribute_points_in_grid_cc::node_geo_exec(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_geo_exec(), blender::nodes::node_geo_field_to_grid_cc::node_geo_exec(), blender::nodes::node_geo_get_named_grid_cc::node_geo_exec(), blender::nodes::node_geo_grid_advect_cc::node_geo_exec(), blender::nodes::node_geo_grid_curl_cc::node_geo_exec(), blender::nodes::node_geo_grid_divergence_cc::node_geo_exec(), blender::nodes::node_geo_grid_gradient_cc::node_geo_exec(), blender::nodes::node_geo_grid_info_cc::node_geo_exec(), blender::nodes::node_geo_grid_laplacian_cc::node_geo_exec(), blender::nodes::node_geo_grid_prune_cc::node_geo_exec(), blender::nodes::node_geo_grid_to_mesh_cc::node_geo_exec(), blender::nodes::node_geo_grid_voxelize_cc::node_geo_exec(), blender::nodes::node_geo_import_vdb::node_geo_exec(), blender::nodes::node_geo_input_voxel_index_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_density_grid_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_sdf_grid_cc::node_geo_exec(), blender::nodes::node_geo_mesh_to_volume_cc::node_geo_exec(), blender::nodes::node_geo_points_to_sdf_grid_cc::node_geo_exec(), blender::nodes::node_geo_points_to_volume_cc::node_geo_exec(), blender::nodes::node_geo_sample_grid_cc::node_geo_exec(), blender::nodes::node_geo_sample_grid_index_cc::node_geo_exec(), blender::nodes::node_geo_sdf_grid_boolean_cc::node_geo_exec(), blender::nodes::node_geo_sdf_grid_fillet_cc::node_geo_exec(), blender::nodes::node_geo_sdf_grid_laplacian_cc::node_geo_exec(), blender::nodes::node_geo_sdf_grid_mean_cc::node_geo_exec(), blender::nodes::node_geo_sdf_grid_mean_curvature_cc::node_geo_exec(), blender::nodes::node_geo_sdf_grid_median_cc::node_geo_exec(), blender::nodes::node_geo_sdf_grid_offset_cc::node_geo_exec(), blender::nodes::node_geo_set_grid_background::node_geo_exec(), blender::nodes::node_geo_set_grid_transform::node_geo_exec(), blender::nodes::node_geo_store_named_grid_cc::node_geo_exec(), blender::nodes::node_geo_volume_cube_cc::node_geo_exec(), and blender::nodes::node_geo_volume_to_mesh_cc::node_geo_exec().

◆ node_geo_exec_with_too_old_openvdb()

void blender::nodes::node_geo_exec_with_too_old_openvdb ( GeoNodeExecParams & params)

Definition at line 114 of file node_geometry_util.cc.

References Error, params, and TIP_.

Referenced by blender::nodes::node_geo_sdf_grid_fillet_cc::node_geo_exec().

◆ node_geo_sdf_grid_error_not_levelset()

◆ node_group_declare()

◆ node_group_declare_panel_recursive()

◆ node_group_input_layout()

void blender::nodes::node_group_input_layout ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_group_output_layout()

void blender::nodes::node_group_output_layout ( uiLayout * layout,
bContext * C,
PointerRNA * ptr )
static

◆ node_math_build_multi_function()

◆ node_warning_type_icon()

int blender::nodes::node_warning_type_icon ( const NodeWarningType type)

◆ node_warning_type_severity()

int blender::nodes::node_warning_type_severity ( const NodeWarningType type)

Definition at line 24 of file geometry_nodes_warning.cc.

References BLI_assert_unreachable, Error, Info, and Warning.

◆ old_id_property_type_matches_socket_convert_to_new()

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

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

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

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

◆ operator!=() [1/2]

bool blender::nodes::operator!= ( const BundleSignature & a,
const BundleSignature & b )

Definition at line 22 of file geometry_nodes_bundle.cc.

◆ operator!=() [2/2]

bool blender::nodes::operator!= ( const ClosureSignature & a,
const ClosureSignature & b )

Definition at line 49 of file geometry_nodes_closure.cc.

◆ operator==() [1/2]

bool blender::nodes::operator== ( const BundleSignature & a,
const BundleSignature & b )

Definition at line 17 of file geometry_nodes_bundle.cc.

◆ operator==() [2/2]

bool blender::nodes::operator== ( const ClosureSignature & a,
const ClosureSignature & b )

Definition at line 44 of file geometry_nodes_closure.cc.

◆ refresh_node()

◆ refresh_node_panel()

◆ refresh_node_socket()

◆ refresh_node_sockets_and_panels()

◆ register_node_type_geo_group()

◆ report_from_multi_function()

void blender::nodes::report_from_multi_function ( const mf::Context & context,
NodeWarningType type,
std::string message )

Report an error from a multi-function evaluation within a Geometry Nodes evaluation.

NOTE: Currently, this the error is only actually reported under limited circumstances. It's still safe to call this function from any multi-function though.

Definition at line 1524 of file geometry_nodes_lazy_function.cc.

References blender::nodes::geo_eval_log::GeoTreeLogger::allocator, log, blender::nodes::geo_eval_log::GeoTreeLogger::node_warnings, blender::ComputeContext::parent(), and report_from_multi_function().

Referenced by blender::nodes::node_fn_format_string_cc::FormatStringMultiFunction::call(), and report_from_multi_function().

◆ reset_declaration()

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

Definition at line 23 of file node_declaration.cc.

Referenced by build_node_declaration().

◆ RNA_def_node_boolean()

◆ 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_composite_relative_to_pixel_cc::node_rna(), 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_bit_math_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_string_to_value_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_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_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_duplicate_elements_cc::node_rna(), blender::nodes::node_geo_enable_output_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_field_average_cc::node_rna(), blender::nodes::node_geo_field_min_and_max_cc::node_rna(), blender::nodes::node_geo_field_variance_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_grease_pencil_set_depth_mode::node_rna(), blender::nodes::node_geo_grid_advect_cc::node_rna(), blender::nodes::node_geo_grid_info_cc::node_rna(), blender::nodes::node_geo_grid_prune_cc::node_rna(), blender::nodes::node_geo_grid_voxelize_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_list_cc::node_rna(), blender::nodes::node_geo_list_get_item_cc::node_rna(), blender::nodes::node_geo_list_length_cc::node_rna(), blender::nodes::node_geo_menu_switch_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_curve_cc::node_rna(), blender::nodes::node_geo_mesh_to_points_cc::node_rna(), blender::nodes::node_geo_object_info_cc::node_rna(), blender::nodes::node_geo_proximity_cc::node_rna(), blender::nodes::node_geo_raycast_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_grease_pencil_color_cc::node_rna(), blender::nodes::node_geo_set_grid_background::node_rna(), blender::nodes::node_geo_set_grid_transform::node_rna(), blender::nodes::node_geo_set_mesh_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_switch_cc::node_rna(), blender::nodes::node_geo_tool_active_element_cc::node_rna(), blender::nodes::node_geo_tool_set_selection_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 167 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(), common_node_type_base(), fn_node_type_base(), geo_cmp_node_type_base(), geo_node_type_base(), search_link_ops_for_tool_node(), sh_geo_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 122 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(), i, 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_field_average_cc::node_gather_link_searches(), blender::nodes::node_geo_field_min_and_max_cc::node_gather_link_searches(), blender::nodes::node_geo_field_variance_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_tool_node()

◆ set_default_remaining_node_outputs()

◆ set_default_value_for_output_socket()

◆ sharing_ptr_for_array()

◆ sharing_ptr_for_value()

ImplicitSharingPtr blender::nodes::sharing_ptr_for_value ( void * data,
const CPPType & type )
static

◆ should_log_socket_values_for_context()

◆ socket_type_always_single()

◆ 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 42 of file geometry_nodes_execute.cc.

References socket_type_supports_fields().

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

◆ socket_type_info_by_static_type()

◆ socket_type_supported_in_bundle()

◆ socket_type_supported_in_closure()

◆ socket_type_supports_default_input_type()

◆ socket_type_supports_fields()

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

Definition at line 525 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::node_tree_reference_lifetimes::can_contain_reference(), 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_viewer_cc::log_viewer_attribute(), blender::nodes::node_geo_bake_cc::node_declare(), blender::nodes::node_geo_enable_output_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::nodes::node_geo_viewer_cc::node_declare(), blender::nodes::node_geo_viewer_cc::node_layout(), blender::nodes::node_geo_list_cc::node_rna(), blender::nodes::node_geo_list_get_item_cc::node_rna(), blender::nodes::node_geo_list_length_cc::node_rna(), blender::ed::space_node::node_tree_interface_draw(), socket_type_has_attribute_toggle(), and blender::ed::space_node::std_node_socket_interface_draw().

◆ socket_type_supports_grids()

◆ socket_type_to_static_decl_type()

◆ split_path()

◆ store_computed_output_attributes()

◆ store_output_attributes()

◆ sync_node()

void blender::nodes::sync_node ( bContext & C,
bNode & node,
ReportList * reports )

◆ sync_node_description_get()

◆ sync_sockets_closure()

void blender::nodes::sync_sockets_closure ( SpaceNode & snode,
bNode & closure_input_node,
bNode & closure_output_node,
ReportList * reports,
const bNodeSocket * src_closure_socket )

Definition at line 348 of file sync_sockets.cc.

References blender::nodes::socket_items::add_item_with_socket_type_and_name(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_ntree_update_tag_node_property(), BKE_report(), CanBeSynced, blender::nodes::socket_items::clear(), ConflictingSyncSources, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), SpaceNode::edittree, get_sync_state_closure_output(), i, NodeClosureInputItem::identifier, NodeClosureOutputItem::identifier, blender::nodes::ClosureSignature::inputs, blender::nodes::ClosureSignature::Item::key, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_try(), NodeClosureInputItem::name, NodeClosureOutputItem::name, blender::bke::node_add_link(), NoSyncSource, blender::nodes::ClosureSignature::outputs, RPT_INFO, blender::nodes::ClosureSyncState::source_signature, blender::nodes::ClosureSyncState::state, bNode::storage, blender::nodes::ClosureSignature::Item::structure_type, NodeClosureInputItem::structure_type, NodeClosureOutputItem::structure_type, Synced, blender::bke::bNodeSocketType::type, blender::nodes::ClosureSignature::Item::type, bNodeTree::typeinfo, and update_node_declaration_and_sockets().

Referenced by blender::nodes::node_geo_closure_cc::output_node::node_gather_link_searches(), blender::nodes::node_geo_closure_cc::output_node::node_insert_link(), and sync_node().

◆ sync_sockets_combine_bundle()

◆ sync_sockets_evaluate_closure()

◆ sync_sockets_separate_bundle()

◆ to_stored_type()

◆ 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 307 of file NOD_math_functions.hh.

References b, 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 346 of file NOD_math_functions.hh.

References b, 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 274 of file NOD_math_functions.hh.

References b, distance(), dot(), 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()

◆ 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 409 of file NOD_math_functions.hh.

References b, 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 378 of file NOD_math_functions.hh.

References get_float3_math_operation_info(), in, 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 176 of file NOD_math_functions.hh.

References b, 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 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 53 of file NOD_math_functions.hh.

References atanf, 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 get_base_multi_function().

◆ update_input_properties_from_node_tree()

◆ update_node_declaration_and_sockets()

◆ update_output_properties_from_node_tree()

◆ use_link_for_tracing()

bool blender::nodes::use_link_for_tracing ( const bNodeLink & link)
static

◆ zone_wrapper_input_name()

◆ zone_wrapper_output_name()

Variable Documentation

◆ input_attribute_name_suffix

◆ input_use_attribute_suffix

StringRef blender::nodes::input_use_attribute_suffix = "_use_attribute"
constexpr

◆ is_GeoNodesMultiInput_v

template<typename T>
bool blender::nodes::is_GeoNodesMultiInput_v = false
constexpr

◆ is_GeoNodesMultiInput_v< GeoNodesMultiInput< T > >

template<typename T>
bool blender::nodes::is_GeoNodesMultiInput_v< GeoNodesMultiInput< T > > = true
constexpr

Definition at line 41 of file NOD_geometry_nodes_values.hh.