Blender  V3.3
Namespaces | Classes | Typedefs | Enumerations | Functions
blender::nodes Namespace Reference

Namespaces

 decl
 
 derived_node_tree_types
 
 geometry_nodes_eval_log
 
 node_composite_alpha_over_cc
 
 node_composite_antialiasing_cc
 
 node_composite_bilateralblur_cc
 
 node_composite_blur_cc
 
 node_composite_bokehblur_cc
 
 node_composite_bokehimage_cc
 
 node_composite_boxmask_cc
 
 node_composite_brightness_cc
 
 node_composite_channel_matte_cc
 
 node_composite_chroma_matte_cc
 
 node_composite_color_matte_cc
 
 node_composite_color_spill_cc
 
 node_composite_colorbalance_cc
 
 node_composite_colorcorrection_cc
 
 node_composite_combine_color_cc
 
 node_composite_composite_cc
 
 node_composite_convert_color_space_cc
 
 node_composite_cornerpin_cc
 
 node_composite_crop_cc
 
 node_composite_cryptomatte_cc
 
 node_composite_curves_cc
 
 node_composite_defocus_cc
 
 node_composite_denoise_cc
 
 node_composite_despeckle_cc
 
 node_composite_diff_matte_cc
 
 node_composite_dilate_cc
 
 node_composite_directionalblur_cc
 
 node_composite_displace_cc
 
 node_composite_distance_matte_cc
 
 node_composite_double_edge_mask_cc
 
 node_composite_ellipsemask_cc
 
 node_composite_exposure_cc
 
 node_composite_filter_cc
 
 node_composite_flip_cc
 
 node_composite_gamma_cc
 
 node_composite_glare_cc
 
 node_composite_hue_sat_val_cc
 
 node_composite_huecorrect_cc
 
 node_composite_id_mask_cc
 
 node_composite_image_cc
 
 node_composite_inpaint_cc
 
 node_composite_invert_cc
 
 node_composite_keying_cc
 
 node_composite_keyingscreen_cc
 
 node_composite_lensdist_cc
 
 node_composite_levels_cc
 
 node_composite_luma_matte_cc
 
 node_composite_map_range_cc
 
 node_composite_map_uv_cc
 
 node_composite_map_value_cc
 
 node_composite_mask_cc
 
 node_composite_math_cc
 
 node_composite_mixrgb_cc
 
 node_composite_movieclip_cc
 
 node_composite_moviedistortion_cc
 
 node_composite_normal_cc
 
 node_composite_normalize_cc
 
 node_composite_output_file_cc
 
 node_composite_pixelate_cc
 
 node_composite_planetrackdeform_cc
 
 node_composite_posterize_cc
 
 node_composite_premulkey_cc
 
 node_composite_rgb_cc
 
 node_composite_rotate_cc
 
 node_composite_scale_cc
 
 node_composite_separate_color_cc
 
 node_composite_sepcomb_hsva_cc
 
 node_composite_sepcomb_rgba_cc
 
 node_composite_sepcomb_ycca_cc
 
 node_composite_sepcomb_yuva_cc
 
 node_composite_setalpha_cc
 
 node_composite_split_viewer_cc
 
 node_composite_stabilize2d_cc
 
 node_composite_sunbeams_cc
 
 node_composite_switch_cc
 
 node_composite_switchview_cc
 
 node_composite_texture_cc
 
 node_composite_tonemap_cc
 
 node_composite_trackpos_cc
 
 node_composite_transform_cc
 
 node_composite_translate_cc
 
 node_composite_val_to_rgb_cc
 
 node_composite_value_cc
 
 node_composite_vec_blur_cc
 
 node_composite_viewer_cc
 
 node_composite_zcombine_cc
 
 node_fn_align_euler_to_vector_cc
 
 node_fn_boolean_math_cc
 
 node_fn_compare_cc
 
 node_fn_float_to_int_cc
 
 node_fn_input_bool_cc
 
 node_fn_input_color_cc
 
 node_fn_input_int_cc
 
 node_fn_input_special_characters_cc
 
 node_fn_input_string_cc
 
 node_fn_input_vector_cc
 
 node_fn_random_value_cc
 
 node_fn_replace_string_cc
 
 node_fn_rotate_euler_cc
 
 node_fn_slice_string_cc
 
 node_fn_string_length_cc
 
 node_fn_value_to_string_cc
 
 node_geo_accumulate_field_cc
 
 node_geo_attribute_capture_cc
 
 node_geo_attribute_domain_size_cc
 
 node_geo_attribute_statistic_cc
 
 node_geo_boolean_cc
 
 node_geo_bounding_box_cc
 
 node_geo_collection_info_cc
 
 node_geo_convex_hull_cc
 
 node_geo_curve_endpoint_selection_cc
 
 node_geo_curve_fill_cc
 
 node_geo_curve_fillet_cc
 
 node_geo_curve_handle_type_selection_cc
 
 node_geo_curve_length_cc
 
 node_geo_curve_primitive_arc_cc
 
 node_geo_curve_primitive_bezier_segment_cc
 
 node_geo_curve_primitive_circle_cc
 
 node_geo_curve_primitive_line_cc
 
 node_geo_curve_primitive_quadratic_bezier_cc
 
 node_geo_curve_primitive_quadrilateral_cc
 
 node_geo_curve_primitive_spiral_cc
 
 node_geo_curve_primitive_star_cc
 
 node_geo_curve_resample_cc
 
 node_geo_curve_reverse_cc
 
 node_geo_curve_sample_cc
 
 node_geo_curve_set_handle_type_cc
 
 node_geo_curve_spline_parameter_cc
 
 node_geo_curve_spline_type_cc
 
 node_geo_curve_subdivide_cc
 
 node_geo_curve_to_mesh_cc
 
 node_geo_curve_to_points_cc
 
 node_geo_curve_trim_cc
 
 node_geo_deform_curves_on_surface_cc
 
 node_geo_delete_geometry_cc
 
 node_geo_distribute_points_on_faces_cc
 
 node_geo_dual_mesh_cc
 
 node_geo_duplicate_elements_cc
 
 node_geo_edge_paths_to_curves_cc
 
 node_geo_edge_paths_to_selection_cc
 
 node_geo_edge_split_cc
 
 node_geo_extrude_mesh_cc
 
 node_geo_field_at_index_cc
 
 node_geo_flip_faces_cc
 
 node_geo_geometry_to_instance_cc
 
 node_geo_image_texture_cc
 
 node_geo_input_curve_handles_cc
 
 node_geo_input_curve_tilt_cc
 
 node_geo_input_id_cc
 
 node_geo_input_index_cc
 
 node_geo_input_instance_rotation_cc
 
 node_geo_input_instance_scale_cc
 
 node_geo_input_material_cc
 
 node_geo_input_material_index_cc
 
 node_geo_input_mesh_edge_angle_cc
 
 node_geo_input_mesh_edge_neighbors_cc
 
 node_geo_input_mesh_edge_vertices_cc
 
 node_geo_input_mesh_face_area_cc
 
 node_geo_input_mesh_face_is_planar_cc
 
 node_geo_input_mesh_face_neighbors_cc
 
 node_geo_input_mesh_island_cc
 
 node_geo_input_mesh_vertex_neighbors_cc
 
 node_geo_input_named_attribute_cc
 
 node_geo_input_normal_cc
 
 node_geo_input_position_cc
 
 node_geo_input_radius_cc
 
 node_geo_input_scene_time_cc
 
 node_geo_input_shade_smooth_cc
 
 node_geo_input_shortest_edge_paths_cc
 
 node_geo_input_spline_cyclic_cc
 
 node_geo_input_spline_length_cc
 
 node_geo_input_spline_resolution_cc
 
 node_geo_input_tangent_cc
 
 node_geo_instance_on_points_cc
 
 node_geo_instances_to_points_cc
 
 node_geo_interpolate_domain_cc
 
 node_geo_is_viewport_cc
 
 node_geo_join_geometry_cc
 
 node_geo_material_replace_cc
 
 node_geo_material_selection_cc
 
 node_geo_merge_by_distance_cc
 
 node_geo_mesh_primitive_circle_cc
 
 node_geo_mesh_primitive_cone_cc
 
 node_geo_mesh_primitive_cube_cc
 
 node_geo_mesh_primitive_cylinder_cc
 
 node_geo_mesh_primitive_grid_cc
 
 node_geo_mesh_primitive_ico_sphere_cc
 
 node_geo_mesh_primitive_line_cc
 
 node_geo_mesh_primitive_uv_sphere_cc
 
 node_geo_mesh_subdivide_cc
 
 node_geo_mesh_to_curve_cc
 
 node_geo_mesh_to_points_cc
 
 node_geo_mesh_to_volume_cc
 
 node_geo_object_info_cc
 
 node_geo_points_cc
 
 node_geo_points_to_vertices_cc
 
 node_geo_points_to_volume_cc
 
 node_geo_proximity_cc
 
 node_geo_raycast_cc
 
 node_geo_realize_instances_cc
 
 node_geo_remove_attribute_cc
 
 node_geo_rotate_instances_cc
 
 node_geo_scale_elements_cc
 
 node_geo_scale_instances_cc
 
 node_geo_separate_components_cc
 
 node_geo_separate_geometry_cc
 
 node_geo_set_curve_handles_cc
 
 node_geo_set_curve_radius_cc
 
 node_geo_set_curve_tilt_cc
 
 node_geo_set_id_cc
 
 node_geo_set_material_cc
 
 node_geo_set_material_index_cc
 
 node_geo_set_point_radius_cc
 
 node_geo_set_position_cc
 
 node_geo_set_shade_smooth_cc
 
 node_geo_set_spline_cyclic_cc
 
 node_geo_set_spline_resolution_cc
 
 node_geo_store_named_attribute_cc
 
 node_geo_string_join_cc
 
 node_geo_string_to_curves_cc
 
 node_geo_subdivision_surface_cc
 
 node_geo_switch_cc
 
 node_geo_transfer_attribute_cc
 
 node_geo_transform_cc
 
 node_geo_translate_instances_cc
 
 node_geo_triangulate_cc
 
 node_geo_uv_pack_islands_cc
 
 node_geo_uv_unwrap_cc
 
 node_geo_viewer_cc
 
 node_geo_volume_cube_cc
 
 node_geo_volume_to_mesh_cc
 
 node_shader_add_shader_cc
 
 node_shader_ambient_occlusion_cc
 
 node_shader_attribute_cc
 
 node_shader_background_cc
 
 node_shader_bevel_cc
 
 node_shader_blackbody_cc
 
 node_shader_brightness_cc
 
 node_shader_bsdf_anisotropic_cc
 
 node_shader_bsdf_diffuse_cc
 
 node_shader_bsdf_glass_cc
 
 node_shader_bsdf_glossy_cc
 
 node_shader_bsdf_hair_cc
 
 node_shader_bsdf_hair_principled_cc
 
 node_shader_bsdf_principled_cc
 
 node_shader_bsdf_refraction_cc
 
 node_shader_bsdf_toon_cc
 
 node_shader_bsdf_translucent_cc
 
 node_shader_bsdf_transparent_cc
 
 node_shader_bsdf_velvet_cc
 
 node_shader_bump_cc
 
 node_shader_camera_cc
 
 node_shader_clamp_cc
 
 node_shader_color_ramp_cc
 
 node_shader_combine_color_cc
 
 node_shader_curves_cc
 
 node_shader_displacement_cc
 
 node_shader_eevee_specular_cc
 
 node_shader_emission_cc
 
 node_shader_fresnel_cc
 
 node_shader_gamma_cc
 
 node_shader_geometry_cc
 
 node_shader_hair_info_cc
 
 node_shader_holdout_cc
 
 node_shader_hueSatVal_cc
 
 node_shader_ies_light_cc
 
 node_shader_invert_cc
 
 node_shader_layer_weight_cc
 
 node_shader_light_falloff_cc
 
 node_shader_light_path_cc
 
 node_shader_map_range_cc
 
 node_shader_mapping_cc
 
 node_shader_math_cc
 
 node_shader_mix_rgb_cc
 
 node_shader_mix_shader_cc
 
 node_shader_normal_cc
 
 node_shader_normal_map_cc
 
 node_shader_object_info_cc
 
 node_shader_output_aov_cc
 
 node_shader_output_light_cc
 
 node_shader_output_linestyle_cc
 
 node_shader_output_material_cc
 
 node_shader_output_world_cc
 
 node_shader_particle_info_cc
 
 node_shader_point_info_cc
 
 node_shader_rgb_cc
 
 node_shader_rgb_to_bw_cc
 
 node_shader_script_cc
 
 node_shader_separate_color_cc
 
 node_shader_sepcomb_hsv_cc
 
 node_shader_sepcomb_rgb_cc
 
 node_shader_sepcomb_xyz_cc
 
 node_shader_shader_to_rgb_cc
 
 node_shader_squeeze_cc
 
 node_shader_subsurface_scattering_cc
 
 node_shader_tangent_cc
 
 node_shader_tex_brick_cc
 
 node_shader_tex_checker_cc
 
 node_shader_tex_coord_cc
 
 node_shader_tex_environment_cc
 
 node_shader_tex_gradient_cc
 
 node_shader_tex_image_cc
 
 node_shader_tex_magic_cc
 
 node_shader_tex_musgrave_cc
 
 node_shader_tex_noise_cc
 
 node_shader_tex_pointdensity_cc
 
 node_shader_tex_sky_cc
 
 node_shader_tex_voronoi_cc
 
 node_shader_tex_wave_cc
 
 node_shader_tex_white_noise_cc
 
 node_shader_uv_along_stroke_cc
 
 node_shader_uvmap_cc
 
 node_shader_value_cc
 
 node_shader_vector_displacement_cc
 
 node_shader_vector_math_cc
 
 node_shader_vector_rotate_cc
 
 node_shader_vector_transform_cc
 
 node_shader_vertex_color_cc
 
 node_shader_volume_absorption_cc
 
 node_shader_volume_info_cc
 
 node_shader_volume_principled_cc
 
 node_shader_volume_scatter_cc
 
 node_shader_wavelength_cc
 
 node_shader_wireframe_cc
 
 node_tree_ref_types
 

Classes

class  SeparateRGBAFunction
 
class  SeparateHSVAFunction
 
class  SeparateHSLAFunction
 
struct  ConeAttributeOutputs
 
struct  ConeConfig
 
struct  ToposortNodeState
 
class  DTreeContext
 
class  DNode
 
class  DSocket
 
class  DInputSocket
 
class  DOutputSocket
 
class  DerivedNodeTree
 
class  GeoNodeExecParamsProvider
 
class  GeoNodeExecParams
 
struct  FloatMathOperationInfo
 
class  NodeMultiFunctionBuilder
 
class  NodeMultiFunctions
 
class  OutputFieldDependency
 
struct  FieldInferencingInterface
 
class  SocketDeclaration
 
class  BaseSocketDeclarationBuilder
 
class  SocketDeclarationBuilder
 
class  NodeDeclaration
 
class  NodeDeclarationBuilder
 
class  SocketRef
 
class  InputSocketRef
 
class  OutputSocketRef
 
class  NodeRef
 
class  LinkRef
 
class  InternalLinkRef
 
class  NodeTreeRef
 
class  LinkSearchOpParams
 
struct  SocketLinkOperation
 
class  GatherLinkSearchOpParams
 

Typedefs

using SocketDeclarationPtr = std::unique_ptr< SocketDeclaration >
 
using SocketIndexByIdentifierMap = Map< std::string, int >
 
using NodeTreeRefMap = Map< bNodeTree *, std::unique_ptr< const NodeTreeRef > >
 

Enumerations

enum class  InputSocketFieldType { None , IsSupported , Implicit }
 
enum class  OutputSocketFieldType { None , FieldSource , DependentField , PartiallyDependent }
 

Functions

static void cmp_node_scene_time_declare (NodeDeclarationBuilder &b)
 
static void cmp_node_separate_xyz_declare (NodeDeclarationBuilder &b)
 
static void cmp_node_combine_xyz_declare (NodeDeclarationBuilder &b)
 
static void fn_node_combine_color_declare (NodeDeclarationBuilder &b)
 
static void fn_node_combine_color_layout (uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
 
static void fn_node_combine_color_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void fn_node_combine_color_init (bNodeTree *UNUSED(tree), bNode *node)
 
static const fn::MultiFunctionget_multi_function (bNode &bnode)
 
static void fn_node_combine_color_build_multi_function (NodeMultiFunctionBuilder &builder)
 
static void fn_node_separate_color_declare (NodeDeclarationBuilder &b)
 
static void fn_node_separate_color_layout (uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
 
static void fn_node_separate_color_update (bNodeTree *UNUSED(ntree), bNode *node)
 
static void fn_node_separate_color_init (bNodeTree *UNUSED(tree), bNode *node)
 
static void fn_node_separate_color_build_multi_function (NodeMultiFunctionBuilder &builder)
 
std::optional< eCustomDataTypenode_data_type_to_custom_data_type (const eNodeSocketDatatype type)
 
std::optional< eCustomDataTypenode_socket_to_custom_data_type (const bNodeSocket &socket)
 
void transform_mesh (Mesh &mesh, const float3 translation, const float3 rotation, const float3 scale)
 
void transform_geometry_set (GeoNodeExecParams &params, GeometrySet &geometry, const float4x4 &transform, const Depsgraph &depsgraph)
 
Meshcreate_line_mesh (const float3 start, const float3 delta, int count)
 
Meshcreate_grid_mesh (int verts_x, int verts_y, float size_x, float size_y)
 
Meshcreate_cylinder_or_cone_mesh (float radius_top, float radius_bottom, float depth, int circle_segments, int side_segments, int fill_segments, GeometryNodeMeshCircleFillType fill_type, ConeAttributeOutputs &attribute_outputs)
 
void copy_point_attributes_based_on_mask (const GeometryComponent &in_component, GeometryComponent &result_component, Span< bool > masks, bool invert)
 
void separate_geometry (GeometrySet &geometry_set, eAttrDomain domain, GeometryNodeDeleteGeometryMode mode, const Field< bool > &selection_field, bool &r_is_error)
 
static void calculate_cone_vertices (const MutableSpan< MVert > &verts, const ConeConfig &config)
 
static void calculate_cone_edges (const MutableSpan< MEdge > &edges, const ConeConfig &config)
 
static void calculate_cone_faces (const MutableSpan< MLoop > &loops, const MutableSpan< MPoly > &polys, const ConeConfig &config)
 
static void calculate_selection_outputs (Mesh *mesh, const ConeConfig &config, ConeAttributeOutputs &attribute_outputs)
 
static void calculate_cone_uvs (Mesh *mesh, const ConeConfig &config)
 
static Meshcreate_vertex_mesh ()
 
static void calculate_uvs (Mesh *mesh, Span< MVert > verts, Span< MLoop > loops, const float size_x, const float size_y)
 
static bool use_translate (const float3 rotation, const float3 scale)
 
static void translate_mesh (Mesh &mesh, const float3 translation)
 
static void transform_mesh (Mesh &mesh, const float4x4 &transform)
 
static void translate_pointcloud (PointCloud &pointcloud, const float3 translation)
 
static void transform_pointcloud (PointCloud &pointcloud, const float4x4 &transform)
 
static void translate_instances (InstancesComponent &instances, const float3 translation)
 
static void transform_instances (InstancesComponent &instances, const float4x4 &transform)
 
static void transform_volume (GeoNodeExecParams &params, Volume &volume, const float4x4 &transform, const Depsgraph &depsgraph)
 
static void translate_volume (GeoNodeExecParams &params, Volume &volume, const float3 translation, const Depsgraph &depsgraph)
 
static void transform_curve_edit_hints (bke::CurvesEditHints &edit_hints, const float4x4 &transform)
 
static void translate_curve_edit_hints (bke::CurvesEditHints &edit_hints, const float3 &translation)
 
static void translate_geometry_set (GeoNodeExecParams &params, GeometrySet &geometry, const float3 translation, const Depsgraph &depsgraph)
 
static dot::Clusterget_dot_cluster_for_context (dot::DirectedGraph &digraph, const DTreeContext *context, Map< const DTreeContext *, dot::Cluster * > &dot_clusters)
 
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::unique_ptr< SocketIndexByIdentifierMapcreate_identifier_map (const ListBase &sockets)
 
static SocketByIdentifierMap get_or_create_identifier_map (const bNode &node, const ListBase &sockets, const bNodeSocketTemplate *sockets_template)
 
static bool has_link_cycles_recursive (const NodeRef &node, MutableSpan< bool > visited, MutableSpan< bool > is_in_stack)
 
static void toposort_from_start_node (const NodeTreeRef::ToposortDirection direction, const NodeRef &start_node, MutableSpan< ToposortNodeState > node_states, NodeTreeRef::ToposortResult &result)
 
const NodeTreeRefget_tree_ref_from_map (NodeTreeRefMap &node_tree_refs, bNodeTree &btree)
 
void search_link_ops_for_declarations (GatherLinkSearchOpParams &params, Span< SocketDeclarationPtr > declarations)
 
static void search_link_ops_for_socket_templates (GatherLinkSearchOpParams &params, const bNodeSocketTemplate *templates, const eNodeSocketInOut in_out)
 
void search_link_ops_for_basic_node (GatherLinkSearchOpParams &params)
 
template<typename Callback >
bool try_dispatch_float_math_fl_to_fl (const int operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl_fl_to_fl (const int operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl_fl_fl_to_fl (const int operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_to_fl (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_fl3_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl3_fl_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_to_fl (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_fl_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
template<typename Callback >
bool try_dispatch_float_math_fl3_to_fl3 (const NodeVectorMathOperation operation, Callback &&callback)
 
#DNode Inline Methods
bool operator== (const DNode &a, const DNode &b)
 
bool operator!= (const DNode &a, const DNode &b)
 
#DSocket Inline Methods
bool operator== (const DSocket &a, const DSocket &b)
 
bool operator!= (const DSocket &a, const DSocket &b)
 
#OutputFieldDependency Inline Methods
bool operator== (const OutputFieldDependency &a, const OutputFieldDependency &b)
 
bool operator!= (const OutputFieldDependency &a, const OutputFieldDependency &b)
 
#FieldInferencingInterface Inline Methods
bool operator== (const FieldInferencingInterface &a, const FieldInferencingInterface &b)
 
bool operator!= (const FieldInferencingInterface &a, const FieldInferencingInterface &b)
 

Typedef Documentation

◆ NodeTreeRefMap

using blender::nodes::NodeTreeRefMap = typedef Map<bNodeTree *, std::unique_ptr<const NodeTreeRef> >

Definition at line 318 of file NOD_node_tree_ref.hh.

◆ SocketDeclarationPtr

using blender::nodes::SocketDeclarationPtr = typedef std::unique_ptr<SocketDeclaration>

Definition at line 254 of file NOD_node_declaration.hh.

◆ SocketIndexByIdentifierMap

using blender::nodes::SocketIndexByIdentifierMap = typedef Map<std::string, int>

Definition at line 60 of file NOD_node_tree_ref.hh.

Enumeration Type Documentation

◆ InputSocketFieldType

Enumerator
None 

The input is required to be a single value.

IsSupported 

The input can be a field.

Implicit 

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

Definition at line 19 of file NOD_node_declaration.hh.

◆ OutputSocketFieldType

Enumerator
None 

The output is always a single value.

FieldSource 

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

DependentField 

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

PartiallyDependent 

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

Definition at line 28 of file NOD_node_declaration.hh.

Function Documentation

◆ calculate_cone_edges()

static void blender::nodes::calculate_cone_edges ( const MutableSpan< MEdge > &  edges,
const ConeConfig config 
)
static

◆ calculate_cone_faces()

static void blender::nodes::calculate_cone_faces ( const MutableSpan< MLoop > &  loops,
const MutableSpan< MPoly > &  polys,
const ConeConfig config 
)
static

◆ calculate_cone_uvs()

static void blender::nodes::calculate_cone_uvs ( Mesh mesh,
const ConeConfig config 
)
static

If the top is the cone tip or has a fill, it is unwrapped into a circle in the lower left quadrant of the UV. Likewise, if the bottom is the cone tip or has a fill, it is unwrapped into a circle in the lower right quadrant of the UV. If the mesh is a truncated cone or a cylinder, the side faces are unwrapped into a rectangle that fills the top half of the UV (or the entire UV, if there are no fills).

Definition at line 537 of file node_geo_mesh_primitive_cone.cc.

References angle(), ATTR_DOMAIN_CORNER, bottom, blender::nodes::ConeConfig::bottom_has_center_vert, blender::nodes::ConeConfig::bottom_is_point, blender::nodes::ConeConfig::circle_segments, KDL::cos(), blender::nodes::ConeConfig::fill_segments, blender::nodes::ConeConfig::fill_type, blender::bke::SpanAttributeWriter< T >::finish(), GEO_NODE_MESH_CIRCLE_FILL_NGON, GEO_NODE_MESH_CIRCLE_FILL_NONE, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), M_PI, mesh, blender::bke::mesh_attributes_for_write(), blender::nodes::ConeConfig::side_segments, KDL::sin(), blender::bke::SpanAttributeWriter< T >::span, blender::nodes::ConeConfig::top_has_center_vert, and blender::nodes::ConeConfig::top_is_point.

Referenced by create_cylinder_or_cone_mesh().

◆ calculate_cone_vertices()

static void blender::nodes::calculate_cone_vertices ( const MutableSpan< MVert > &  verts,
const ConeConfig config 
)
static

◆ calculate_selection_outputs()

static void blender::nodes::calculate_selection_outputs ( Mesh mesh,
const ConeConfig config,
ConeAttributeOutputs attribute_outputs 
)
static

◆ calculate_uvs()

static void blender::nodes::calculate_uvs ( Mesh mesh,
Span< MVert verts,
Span< MLoop loops,
const float  size_x,
const float  size_y 
)
static

◆ cmp_node_combine_xyz_declare()

static void blender::nodes::cmp_node_combine_xyz_declare ( NodeDeclarationBuilder b)
static

Definition at line 37 of file node_composite_sepcomb_xyz.cc.

References usdtokens::b(), and min.

Referenced by register_node_type_cmp_combine_xyz().

◆ cmp_node_scene_time_declare()

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

Definition at line 10 of file node_composite_scene_time.cc.

References usdtokens::b(), and N_.

Referenced by register_node_type_cmp_scene_time().

◆ cmp_node_separate_xyz_declare()

static void blender::nodes::cmp_node_separate_xyz_declare ( NodeDeclarationBuilder b)
static

Definition at line 13 of file node_composite_sepcomb_xyz.cc.

References usdtokens::b(), and min.

Referenced by register_node_type_cmp_separate_xyz().

◆ copy_point_attributes_based_on_mask()

void blender::nodes::copy_point_attributes_based_on_mask ( const GeometryComponent in_component,
GeometryComponent result_component,
Span< bool masks,
bool  invert 
)

Copies the point domain attributes from in_component that are in the mask to out_component.

◆ create_cylinder_or_cone_mesh()

Mesh * blender::nodes::create_cylinder_or_cone_mesh ( float  radius_top,
float  radius_bottom,
float  depth,
int  circle_segments,
int  side_segments,
int  fill_segments,
GeometryNodeMeshCircleFillType  fill_type,
ConeAttributeOutputs attribute_outputs 
)

◆ create_grid_mesh()

Mesh * blender::nodes::create_grid_mesh ( int  verts_x,
int  verts_y,
float  size_x,
float  size_y 
)

◆ create_identifier_map()

static std::unique_ptr<SocketIndexByIdentifierMap> blender::nodes::create_identifier_map ( const ListBase sockets)
static

◆ create_line_mesh()

Mesh * blender::nodes::create_line_mesh ( const float3  start,
const float3  delta,
int  count 
)

◆ create_vertex_mesh()

static Mesh* blender::nodes::create_vertex_mesh ( )
static

◆ fn_node_combine_color_build_multi_function()

static void blender::nodes::fn_node_combine_color_build_multi_function ( NodeMultiFunctionBuilder builder)
static

◆ fn_node_combine_color_declare()

static void blender::nodes::fn_node_combine_color_declare ( NodeDeclarationBuilder b)
static

Definition at line 12 of file node_fn_combine_color.cc.

References usdtokens::b(), N_, and PROP_FACTOR.

Referenced by register_node_type_fn_combine_color().

◆ fn_node_combine_color_init()

static void blender::nodes::fn_node_combine_color_init ( bNodeTree UNUSEDtree,
bNode node 
)
static

Definition at line 45 of file node_fn_combine_color.cc.

References data, node, and NODE_COMBSEP_COLOR_RGB.

Referenced by register_node_type_fn_combine_color().

◆ fn_node_combine_color_layout()

static void blender::nodes::fn_node_combine_color_layout ( uiLayout layout,
bContext UNUSEDC,
PointerRNA ptr 
)
static

Definition at line 34 of file node_fn_combine_color.cc.

References ptr, and uiItemR().

Referenced by register_node_type_fn_combine_color().

◆ fn_node_combine_color_update()

static void blender::nodes::fn_node_combine_color_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ fn_node_separate_color_build_multi_function()

static void blender::nodes::fn_node_separate_color_build_multi_function ( NodeMultiFunctionBuilder builder)
static

◆ fn_node_separate_color_declare()

static void blender::nodes::fn_node_separate_color_declare ( NodeDeclarationBuilder b)
static

Definition at line 12 of file node_fn_separate_color.cc.

References usdtokens::b(), and N_.

Referenced by register_node_type_fn_separate_color().

◆ fn_node_separate_color_init()

static void blender::nodes::fn_node_separate_color_init ( bNodeTree UNUSEDtree,
bNode node 
)
static

Definition at line 33 of file node_fn_separate_color.cc.

References data, node, and NODE_COMBSEP_COLOR_RGB.

Referenced by register_node_type_fn_separate_color().

◆ fn_node_separate_color_layout()

static void blender::nodes::fn_node_separate_color_layout ( uiLayout layout,
bContext UNUSEDC,
PointerRNA ptr 
)
static

Definition at line 22 of file node_fn_separate_color.cc.

References ptr, and uiItemR().

Referenced by register_node_type_fn_separate_color().

◆ fn_node_separate_color_update()

static void blender::nodes::fn_node_separate_color_update ( bNodeTree UNUSEDntree,
bNode node 
)
static

◆ get_dot_cluster_for_context()

static dot::Cluster* blender::nodes::get_dot_cluster_for_context ( dot::DirectedGraph digraph,
const DTreeContext context,
Map< const DTreeContext *, dot::Cluster * > &  dot_clusters 
)
static

◆ get_float3_math_operation_info()

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

◆ get_float_compare_operation_info()

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

◆ get_float_math_operation_info()

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

◆ get_multi_function()

static const fn::MultiFunction* blender::nodes::get_multi_function ( bNode bnode)
static

◆ get_or_create_identifier_map()

static SocketByIdentifierMap blender::nodes::get_or_create_identifier_map ( const bNode node,
const ListBase sockets,
const bNodeSocketTemplate sockets_template 
)
static

◆ get_tree_ref_from_map()

const NodeTreeRef & blender::nodes::get_tree_ref_from_map ( NodeTreeRefMap node_tree_refs,
bNodeTree btree 
)

◆ has_link_cycles_recursive()

static bool blender::nodes::has_link_cycles_recursive ( const NodeRef node,
MutableSpan< bool visited,
MutableSpan< bool is_in_stack 
)
static

◆ node_data_type_to_custom_data_type()

std::optional< eCustomDataType > blender::nodes::node_data_type_to_custom_data_type ( const eNodeSocketDatatype  type)

◆ node_socket_to_custom_data_type()

std::optional< eCustomDataType > blender::nodes::node_socket_to_custom_data_type ( const bNodeSocket socket)

◆ operator!=() [1/4]

bool blender::nodes::operator!= ( const DNode a,
const DNode b 
)
inline

Definition at line 288 of file NOD_derived_node_tree.hh.

◆ operator!=() [2/4]

bool blender::nodes::operator!= ( const DSocket a,
const DSocket b 
)
inline

Definition at line 365 of file NOD_derived_node_tree.hh.

◆ operator!=() [3/4]

Definition at line 380 of file NOD_node_declaration.hh.

References Freestyle::a, and usdtokens::b().

◆ operator!=() [4/4]

Definition at line 364 of file NOD_node_declaration.hh.

References Freestyle::a, and usdtokens::b().

◆ operator==() [1/4]

bool blender::nodes::operator== ( const DNode a,
const DNode b 
)
inline

Definition at line 283 of file NOD_derived_node_tree.hh.

◆ operator==() [2/4]

bool blender::nodes::operator== ( const DSocket a,
const DSocket b 
)
inline

Definition at line 360 of file NOD_derived_node_tree.hh.

◆ operator==() [3/4]

bool blender::nodes::operator== ( const FieldInferencingInterface a,
const FieldInferencingInterface b 
)
inline

Definition at line 375 of file NOD_node_declaration.hh.

References Freestyle::a, and usdtokens::b().

◆ operator==() [4/4]

bool blender::nodes::operator== ( const OutputFieldDependency a,
const OutputFieldDependency b 
)
inline

Definition at line 359 of file NOD_node_declaration.hh.

◆ 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 bNodeSocketTemplate instead of a declaration, these criteria do not apply and the function just tries its best without asserting.

Definition at line 164 of file socket_search_link.cc.

References BLI_assert_unreachable, bNodeType::declaration_is_dynamic, bNodeType::declare, bNodeType::fixed_declaration, bNodeType::inputs, bNodeType::outputs, params, search_link_ops_for_declarations(), search_link_ops_for_socket_templates(), SOCK_IN, SOCK_OUT, and blender::nodes::NodeDeclaration::sockets().

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

◆ search_link_ops_for_declarations()

void blender::nodes::search_link_ops_for_declarations ( GatherLinkSearchOpParams params,
Span< SocketDeclarationPtr declarations 
)

Definition at line 83 of file socket_search_link.cc.

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

Referenced by blender::nodes::node_fn_random_value_cc::fn_node_random_value_gather_link_search(), blender::nodes::node_geo_attribute_capture_cc::node_gather_link_searches(), blender::nodes::node_geo_attribute_statistic_cc::node_gather_link_searches(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_gather_link_searches(), blender::nodes::node_geo_curve_trim_cc::node_gather_link_searches(), blender::nodes::node_geo_field_at_index_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_store_named_attribute_cc::node_gather_link_searches(), blender::nodes::node_geo_transfer_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_socket_templates()

static void blender::nodes::search_link_ops_for_socket_templates ( GatherLinkSearchOpParams params,
const bNodeSocketTemplate templates,
const eNodeSocketInOut  in_out 
)
static

◆ separate_geometry()

void blender::nodes::separate_geometry ( GeometrySet geometry_set,
eAttrDomain  domain,
GeometryNodeDeleteGeometryMode  mode,
const Field< bool > &  selection_field,
bool r_is_error 
)

◆ toposort_from_start_node()

static void blender::nodes::toposort_from_start_node ( const NodeTreeRef::ToposortDirection  direction,
const NodeRef start_node,
MutableSpan< ToposortNodeState node_states,
NodeTreeRef::ToposortResult result 
)
static

◆ transform_curve_edit_hints()

static void blender::nodes::transform_curve_edit_hints ( bke::CurvesEditHints edit_hints,
const float4x4 transform 
)
static

◆ transform_geometry_set()

void blender::nodes::transform_geometry_set ( GeoNodeExecParams params,
GeometrySet geometry,
const float4x4 transform,
const Depsgraph depsgraph 
)

◆ transform_instances()

static void blender::nodes::transform_instances ( InstancesComponent instances,
const float4x4 transform 
)
static

Definition at line 78 of file node_geo_transform.cc.

References InstancesComponent::instance_transforms(), and transform().

Referenced by transform_geometry_set().

◆ transform_mesh() [1/2]

void blender::nodes::transform_mesh ( Mesh mesh,
const float3  translation,
const float3  rotation,
const float3  scale 
)

◆ transform_mesh() [2/2]

static void blender::nodes::transform_mesh ( Mesh mesh,
const float4x4 transform 
)
static

Definition at line 43 of file node_geo_transform.cc.

References BKE_mesh_transform(), mesh, and transform().

◆ transform_pointcloud()

static void blender::nodes::transform_pointcloud ( PointCloud pointcloud,
const float4x4 transform 
)
static

◆ transform_volume()

static void blender::nodes::transform_volume ( GeoNodeExecParams params,
Volume volume,
const float4x4 transform,
const Depsgraph depsgraph 
)
static

◆ translate_curve_edit_hints()

static void blender::nodes::translate_curve_edit_hints ( bke::CurvesEditHints edit_hints,
const float3 translation 
)
static

Definition at line 162 of file node_geo_transform.cc.

References pos, and blender::bke::CurvesEditHints::positions.

Referenced by translate_geometry_set().

◆ translate_geometry_set()

static void blender::nodes::translate_geometry_set ( GeoNodeExecParams params,
GeometrySet geometry,
const float3  translation,
const Depsgraph depsgraph 
)
static

◆ translate_instances()

static void blender::nodes::translate_instances ( InstancesComponent instances,
const float3  translation 
)
static

◆ translate_mesh()

static void blender::nodes::translate_mesh ( Mesh mesh,
const float3  translation 
)
static

Definition at line 36 of file node_geo_transform.cc.

References BKE_mesh_translate(), blender::math::is_zero(), and mesh.

Referenced by translate_geometry_set().

◆ translate_pointcloud()

static void blender::nodes::translate_pointcloud ( PointCloud pointcloud,
const float3  translation 
)
static

◆ translate_volume()

static void blender::nodes::translate_volume ( GeoNodeExecParams params,
Volume volume,
const float3  translation,
const Depsgraph depsgraph 
)
static

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

References Freestyle::a, usdtokens::b(), Freestyle::c, callback, faceforward(), get_float3_math_operation_info(), NODE_VECTOR_MATH_FACEFORWARD, NODE_VECTOR_MATH_MULTIPLY_ADD, NODE_VECTOR_MATH_WRAP, and wrapf().

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

◆ try_dispatch_float_math_fl3_fl3_fl_to_fl3()

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

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

Definition at line 334 of file NOD_math_functions.hh.

References Freestyle::a, usdtokens::b(), Freestyle::c, callback, get_float3_math_operation_info(), NODE_VECTOR_MATH_REFRACT, blender::math::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 262 of file NOD_math_functions.hh.

References Freestyle::a, usdtokens::b(), callback, blender::math::distance(), blender::math::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()

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

◆ try_dispatch_float_math_fl3_fl_to_fl3()

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

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

Definition at line 397 of file NOD_math_functions.hh.

References Freestyle::a, usdtokens::b(), callback, get_float3_math_operation_info(), and NODE_VECTOR_MATH_SCALE.

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

◆ try_dispatch_float_math_fl3_to_fl()

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

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

Definition at line 366 of file NOD_math_functions.hh.

References callback, get_float3_math_operation_info(), blender::math::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

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

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

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

◆ use_translate()

static bool blender::nodes::use_translate ( const float3  rotation,
const float3  scale 
)
static