Blender
V3.3
|
#include <ctype.h>
#include <limits.h>
#include <string.h>
#include "DNA_node_types.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_colortools.h"
#include "BKE_node.h"
#include "BKE_node_tree_update.h"
#include "RNA_access.h"
#include "RNA_enum_types.h"
#include "RNA_prototypes.h"
#include "MEM_guardedalloc.h"
#include "NOD_common.h"
#include "node_util.h"
Go to the source code of this file.
void node_blend_label | ( | const bNodeTree * | UNUSEDntree, |
const bNode * | node, | ||
char * | label, | ||
int | maxlen | ||
) |
Definition at line 179 of file node_util.c.
References BLI_strncpy(), IFACE_, label, node, RNA_enum_name(), and rna_enum_ramp_blend_items.
Referenced by register_node_type_cmp_mix_rgb(), register_node_type_sh_mix_rgb(), and register_node_type_tex_mix_rgb().
void node_combsep_color_label | ( | const ListBase * | sockets, |
NodeCombSepColorMode | mode | ||
) |
Definition at line 229 of file node_util.c.
References BLI_assert_unreachable, ListBase::first, bNodeSocket::next, NODE_COMBSEP_COLOR_HSL, NODE_COMBSEP_COLOR_HSV, NODE_COMBSEP_COLOR_RGB, node_sock_label(), and node_sock_label_clear().
Referenced by blender::nodes::fn_node_combine_color_update(), blender::nodes::fn_node_separate_color_update(), blender::nodes::node_shader_combine_color_cc::node_combcolor_update(), blender::nodes::node_shader_separate_color_cc::node_sepcolor_update(), and update().
Definition at line 50 of file node_util.c.
References BKE_curvemapping_copy(), and bNode::storage.
Referenced by register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_huecorrect(), register_node_type_sh_curve_float(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_tex_curve_rgb(), and register_node_type_tex_curve_time().
void node_copy_standard_storage | ( | bNodeTree * | UNUSEDdest_ntree, |
bNode * | dest_node, | ||
const bNode * | src_node | ||
) |
Definition at line 55 of file node_util.c.
References MEM_dupallocN, and bNode::storage.
Referenced by copy(), register_node_type_cmp_alphaover(), register_node_type_cmp_antialiasing(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_bokehimage(), register_node_type_cmp_boxmask(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_colorcorrection(), register_node_type_cmp_combine_color(), register_node_type_cmp_convert_color_space(), register_node_type_cmp_crop(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_denoise(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_distance_matte(), register_node_type_cmp_ellipsemask(), register_node_type_cmp_glare(), register_node_type_cmp_keying(), register_node_type_cmp_keyingscreen(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_mask(), register_node_type_cmp_movieclip(), register_node_type_cmp_planetrackdeform(), register_node_type_cmp_separate_color(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_sunbeams(), register_node_type_cmp_tonemap(), register_node_type_cmp_trackpos(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_vecblur(), register_node_type_cmp_viewer(), register_node_type_fn_combine_color(), register_node_type_fn_compare(), register_node_type_fn_input_bool(), register_node_type_fn_input_color(), register_node_type_fn_input_int(), register_node_type_fn_input_vector(), register_node_type_fn_random_value(), register_node_type_fn_separate_color(), register_node_type_frame(), register_node_type_geo_accumulate_field(), register_node_type_geo_attribute_capture(), register_node_type_geo_collection_info(), register_node_type_geo_curve_fill(), register_node_type_geo_curve_fillet(), register_node_type_geo_curve_handle_type_selection(), register_node_type_geo_curve_primitive_arc(), register_node_type_geo_curve_primitive_bezier_segment(), register_node_type_geo_curve_primitive_circle(), register_node_type_geo_curve_primitive_line(), register_node_type_geo_curve_primitive_quadrilateral(), register_node_type_geo_curve_resample(), register_node_type_geo_curve_sample(), register_node_type_geo_curve_set_handle_type(), register_node_type_geo_curve_spline_type(), register_node_type_geo_curve_to_points(), register_node_type_geo_curve_trim(), register_node_type_geo_delete_geometry(), register_node_type_geo_duplicate_elements(), register_node_type_geo_extrude_mesh(), register_node_type_geo_image_texture(), register_node_type_geo_input_named_attribute(), register_node_type_geo_merge_by_distance(), register_node_type_geo_mesh_primitive_circle(), register_node_type_geo_mesh_primitive_cone(), register_node_type_geo_mesh_primitive_cylinder(), register_node_type_geo_mesh_primitive_line(), register_node_type_geo_mesh_to_points(), register_node_type_geo_mesh_to_volume(), register_node_type_geo_object_info(), register_node_type_geo_points_to_volume(), register_node_type_geo_proximity(), register_node_type_geo_raycast(), register_node_type_geo_separate_geometry(), register_node_type_geo_set_curve_handles(), register_node_type_geo_store_named_attribute(), register_node_type_geo_string_to_curves(), register_node_type_geo_subdivision_surface(), register_node_type_geo_switch(), register_node_type_geo_transfer_attribute(), register_node_type_geo_uv_unwrap(), register_node_type_geo_viewer(), register_node_type_geo_volume_to_mesh(), register_node_type_sh_attribute(), register_node_type_sh_combcolor(), register_node_type_sh_map_range(), register_node_type_sh_normal_map(), register_node_type_sh_output_aov(), register_node_type_sh_sepcolor(), register_node_type_sh_tangent(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_uvmap(), register_node_type_sh_valtorgb(), register_node_type_sh_vect_transform(), register_node_type_sh_vertex_color(), register_node_type_tex_image(), and register_node_type_tex_valtorgb().
|
static |
Definition at line 293 of file node_util.c.
References count, ELEM, bNodeTree::links, LISTBASE_FOREACH, and ntree.
Referenced by node_find_linkable_socket().
void node_filter_label | ( | const bNodeTree * | UNUSEDntree, |
const bNode * | node, | ||
char * | label, | ||
int | maxlen | ||
) |
Definition at line 219 of file node_util.c.
References BLI_strncpy(), IFACE_, label, node, RNA_enum_name(), and rna_enum_node_filter_items.
Referenced by register_node_type_cmp_filter().
|
static |
Definition at line 304 of file node_util.c.
References bNodeSocket::in_out, bNodeSocket::next, node, node_count_links(), node_link_socket_match(), nodeSocketIsHidden(), nodeSocketLinkLimit(), ntree, NULL, and SOCK_IN.
Referenced by node_insert_link_default().
Definition at line 38 of file node_util.c.
References BKE_curvemapping_free(), and node.
Referenced by register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_huecorrect(), register_node_type_sh_curve_float(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_tex_curve_rgb(), and register_node_type_tex_curve_time().
Definition at line 43 of file node_util.c.
References MEM_freeN, and node.
Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_antialiasing(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_bokehimage(), register_node_type_cmp_boxmask(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_colorcorrection(), register_node_type_cmp_combine_color(), register_node_type_cmp_convert_color_space(), register_node_type_cmp_crop(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_denoise(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_distance_matte(), register_node_type_cmp_ellipsemask(), register_node_type_cmp_glare(), register_node_type_cmp_keying(), register_node_type_cmp_keyingscreen(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_mask(), register_node_type_cmp_movieclip(), register_node_type_cmp_planetrackdeform(), register_node_type_cmp_separate_color(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_sunbeams(), register_node_type_cmp_tonemap(), register_node_type_cmp_trackpos(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_vecblur(), register_node_type_cmp_viewer(), register_node_type_fn_combine_color(), register_node_type_fn_compare(), register_node_type_fn_input_bool(), register_node_type_fn_input_color(), register_node_type_fn_input_int(), register_node_type_fn_input_vector(), register_node_type_fn_random_value(), register_node_type_fn_separate_color(), register_node_type_frame(), register_node_type_geo_accumulate_field(), register_node_type_geo_attribute_capture(), register_node_type_geo_collection_info(), register_node_type_geo_curve_fill(), register_node_type_geo_curve_fillet(), register_node_type_geo_curve_handle_type_selection(), register_node_type_geo_curve_primitive_arc(), register_node_type_geo_curve_primitive_bezier_segment(), register_node_type_geo_curve_primitive_circle(), register_node_type_geo_curve_primitive_line(), register_node_type_geo_curve_primitive_quadrilateral(), register_node_type_geo_curve_resample(), register_node_type_geo_curve_sample(), register_node_type_geo_curve_set_handle_type(), register_node_type_geo_curve_spline_type(), register_node_type_geo_curve_to_points(), register_node_type_geo_curve_trim(), register_node_type_geo_delete_geometry(), register_node_type_geo_duplicate_elements(), register_node_type_geo_extrude_mesh(), register_node_type_geo_image_texture(), register_node_type_geo_input_named_attribute(), register_node_type_geo_merge_by_distance(), register_node_type_geo_mesh_primitive_circle(), register_node_type_geo_mesh_primitive_cone(), register_node_type_geo_mesh_primitive_cylinder(), register_node_type_geo_mesh_primitive_line(), register_node_type_geo_mesh_to_points(), register_node_type_geo_mesh_to_volume(), register_node_type_geo_object_info(), register_node_type_geo_points_to_volume(), register_node_type_geo_proximity(), register_node_type_geo_raycast(), register_node_type_geo_separate_geometry(), register_node_type_geo_set_curve_handles(), register_node_type_geo_store_named_attribute(), register_node_type_geo_string_to_curves(), register_node_type_geo_subdivision_surface(), register_node_type_geo_switch(), register_node_type_geo_transfer_attribute(), register_node_type_geo_uv_unwrap(), register_node_type_geo_viewer(), register_node_type_geo_volume_to_mesh(), register_node_type_sh_attribute(), register_node_type_sh_combcolor(), register_node_type_sh_map_range(), register_node_type_sh_normal_map(), register_node_type_sh_output_aov(), register_node_type_sh_sepcolor(), register_node_type_sh_tangent(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_uvmap(), register_node_type_sh_valtorgb(), register_node_type_sh_vect_transform(), register_node_type_sh_vertex_color(), register_node_type_tex_image(), register_node_type_tex_output(), and register_node_type_tex_valtorgb().
void node_image_label | ( | const bNodeTree * | UNUSEDntree, |
const bNode * | node, | ||
char * | label, | ||
int | maxlen | ||
) |
Definition at line 189 of file node_util.c.
References BLI_strncpy(), label, and node.
Referenced by register_node_type_cmp_image(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_image(), and register_node_type_tex_image().
void* node_initexec_curves | ( | bNodeExecContext * | UNUSEDcontext, |
bNode * | node, | ||
bNodeInstanceKey | UNUSEDkey | ||
) |
Definition at line 62 of file node_util.c.
References BKE_curvemapping_init(), node, and NULL.
Referenced by register_node_type_tex_curve_rgb(), and register_node_type_tex_curve_time().
void node_insert_link_default | ( | struct bNodeTree * | ntree, |
struct bNode * | node, | ||
struct bNodeLink * | link | ||
) |
The idea behind this is: When a user connects an input to a socket that is already linked (and if its not an Multi Input Socket), we try to find a replacement socket for the link that we try to overwrite and connect that previous link to the new socket.
Definition at line 326 of file node_util.c.
References bNodeTree::links, LISTBASE_FOREACH_MUTABLE, node, node_find_linkable_socket(), nodeRemLink(), nodeSocketLinkLimit(), ntree, NULL, bNodeLink::tonode, bNodeLink::tosock, and bNodeSocket::total_inputs.
Referenced by cmp_node_type_base(), fn_node_type_base(), geo_node_type_base(), register_node_type_cmp_custom_group(), register_node_type_cmp_group(), register_node_type_geo_custom_group(), register_node_type_geo_group(), register_node_type_sh_custom_group(), register_node_type_sh_group(), register_node_type_tex_group(), sh_node_type_base(), and tex_node_type_base().
|
static |
Definition at line 268 of file node_util.c.
References Freestyle::a, and usdtokens::b().
Referenced by node_find_linkable_socket().
void node_math_label | ( | const bNodeTree * | UNUSEDntree, |
const bNode * | node, | ||
char * | label, | ||
int | maxlen | ||
) |
Definition at line 196 of file node_util.c.
References BLI_strncpy(), BLT_I18NCONTEXT_ID_NODETREE, CTX_IFACE_, label, node, RNA_enum_name(), and rna_enum_node_math_items.
Referenced by register_node_type_cmp_math(), register_node_type_sh_math(), and register_node_type_tex_math().
Definition at line 88 of file node_util.c.
References BLI_findlink(), ELEM, node, NODE_MATH_ABSOLUTE, NODE_MATH_ARCCOSINE, NODE_MATH_ARCSINE, NODE_MATH_ARCTANGENT, NODE_MATH_CEIL, NODE_MATH_COMPARE, NODE_MATH_COSH, NODE_MATH_COSINE, NODE_MATH_DEGREES, NODE_MATH_EXPONENT, NODE_MATH_FLOOR, NODE_MATH_FRACTION, NODE_MATH_GREATER_THAN, NODE_MATH_INV_SQRT, NODE_MATH_LESS_THAN, NODE_MATH_LOGARITHM, NODE_MATH_MULTIPLY_ADD, NODE_MATH_PINGPONG, NODE_MATH_POWER, NODE_MATH_RADIANS, NODE_MATH_ROUND, NODE_MATH_SIGN, NODE_MATH_SINE, NODE_MATH_SINH, NODE_MATH_SMOOTH_MAX, NODE_MATH_SMOOTH_MIN, NODE_MATH_SNAP, NODE_MATH_SQRT, NODE_MATH_TANGENT, NODE_MATH_TANH, NODE_MATH_TRUNC, NODE_MATH_WRAP, node_sock_label(), node_sock_label_clear(), nodeSetSocketAvailability(), and ntree.
Referenced by register_node_type_cmp_math(), register_node_type_sh_math(), and register_node_type_tex_math().
void node_sock_label | ( | bNodeSocket * | sock, |
const char * | name | ||
) |
Definition at line 76 of file node_util.c.
References BLI_strncpy(), bNodeSocket::label, and MAX_NAME.
Referenced by node_cmp_combsep_color_label(), node_combsep_color_label(), node_math_update(), blender::nodes::node_shader_tex_musgrave_cc::node_shader_update_tex_musgrave(), blender::nodes::node_shader_vector_math_cc::node_shader_update_vector_math(), blender::nodes::node_geo_boolean_cc::node_update(), and blender::nodes::node_geo_mesh_primitive_line_cc::node_update().
void node_sock_label_clear | ( | bNodeSocket * | sock | ) |
Definition at line 81 of file node_util.c.
References bNodeSocket::label.
Referenced by node_cmp_combsep_color_label(), node_combsep_color_label(), node_math_update(), and blender::nodes::node_shader_vector_math_cc::node_shader_update_vector_math().
void node_socket_get_color | ( | bNodeTree * | ntree, |
bNode * | UNUSEDnode, | ||
bNodeSocket * | sock, | ||
float * | value | ||
) |
Definition at line 379 of file node_util.c.
References ntree, ptr, RNA_float_get_array(), and RNA_pointer_create().
Referenced by setup_stack().
float node_socket_get_float | ( | bNodeTree * | ntree, |
bNode * | UNUSEDnode, | ||
bNodeSocket * | sock | ||
) |
Definition at line 365 of file node_util.c.
References ntree, ptr, RNA_float_get(), and RNA_pointer_create().
Referenced by setup_stack().
void node_socket_get_vector | ( | bNodeTree * | ntree, |
bNode * | UNUSEDnode, | ||
bNodeSocket * | sock, | ||
float * | value | ||
) |
Definition at line 396 of file node_util.c.
References ntree, ptr, RNA_float_get_array(), and RNA_pointer_create().
Referenced by setup_stack().
void node_socket_set_color | ( | bNodeTree * | ntree, |
bNode * | UNUSEDnode, | ||
bNodeSocket * | sock, | ||
const float * | value | ||
) |
Definition at line 386 of file node_util.c.
References ntree, ptr, RNA_float_set_array(), and RNA_pointer_create().
void node_socket_set_float | ( | bNodeTree * | ntree, |
bNode * | UNUSEDnode, | ||
bNodeSocket * | sock, | ||
float | value | ||
) |
Definition at line 372 of file node_util.c.
References ntree, ptr, RNA_float_set(), and RNA_pointer_create().
void node_socket_set_vector | ( | bNodeTree * | ntree, |
bNode * | UNUSEDnode, | ||
bNodeSocket * | sock, | ||
const float * | value | ||
) |
Definition at line 403 of file node_util.c.
References ntree, ptr, RNA_float_set_array(), and RNA_pointer_create().
void node_vector_math_label | ( | const bNodeTree * | UNUSEDntree, |
const bNode * | node, | ||
char * | label, | ||
int | maxlen | ||
) |
Definition at line 206 of file node_util.c.
References BLI_strncpy(), IFACE_, label, node, RNA_enum_name(), and rna_enum_node_vec_math_items.
Referenced by register_node_type_sh_vect_math().