69 const bNode *src_node)
95 if (sock->
label[0] !=
'\0') {
96 sock->
label[0] =
'\0';
141 switch (
node->custom1) {
252 const char *ca =
a->name, *cb = b->
name;
253 for (; *ca !=
'\0' && *cb !=
'\0'; ca++, cb++) {
257 if (isalpha(*ca) || isalpha(*cb)) {
264 return prefix_len > 0;
271 if (
ELEM(socket, link->fromsock, link->tosock)) {
286 while (socket_iter != to_socket) {
294 socket_iter = socket_iter->
next ? socket_iter->
next : first;
321 if (socket == to_link->tosock) {
323 if (new_socket && new_socket != socket) {
325 to_link->tosock = new_socket;
329 if (new_socket ==
NULL) {
472 int sel_priority = -1;
473 bool sel_is_linked =
false;
475 for (input =
node->inputs.first, i = 0; input; input = input->next, i++) {
477 bool is_linked = (input->link !=
NULL);
484 priority < sel_priority)
490 preferred = (priority > sel_priority) ||
491 (is_linked && !sel_is_linked);
495 sel_is_linked = is_linked;
496 sel_priority = priority;
void nodeSetSocketAvailability(struct bNodeSocket *sock, bool is_available)
bool nodeLinkIsHidden(const struct bNodeLink *link)
void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link)
int nodeSocketIsHidden(const struct bNodeSocket *sock)
int nodeSocketLinkLimit(const struct bNodeSocket *sock)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
Read Guarded memory(de)allocation.
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void node_sock_label_clear(bNodeSocket *sock)
void node_sock_label(bNodeSocket *sock, const char *name)
void node_copy_curves(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, const bNode *src_node)
void node_blend_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, int maxlen)
void node_copy_standard_storage(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, const bNode *src_node)
void node_free_standard_storage(bNode *node)
void node_math_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, int maxlen)
void node_socket_set_vector(bNodeTree *ntree, bNode *UNUSED(node), bNodeSocket *sock, const float *value)
void node_socket_get_color(bNodeTree *ntree, bNode *UNUSED(node), bNodeSocket *sock, float *value)
void * node_initexec_curves(bNodeExecContext *UNUSED(context), bNode *node, bNodeInstanceKey UNUSED(key))
static int node_count_links(const bNodeTree *ntree, const bNodeSocket *socket)
void node_free_curves(bNode *node)
void node_socket_set_float(bNodeTree *ntree, bNode *UNUSED(node), bNodeSocket *sock, float value)
void node_math_update(bNodeTree *UNUSED(ntree), bNode *node)
float node_socket_get_float(bNodeTree *ntree, bNode *UNUSED(node), bNodeSocket *sock)
void node_socket_get_vector(bNodeTree *ntree, bNode *UNUSED(node), bNodeSocket *sock, float *value)
void node_filter_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, int maxlen)
static int node_datatype_priority(eNodeSocketDatatype from, eNodeSocketDatatype to)
static bNodeSocket * select_internal_link_input(bNode *node, bNodeSocket *output)
void node_insert_link_default(bNodeTree *ntree, bNode *node, bNodeLink *link)
static bool node_link_socket_match(const bNodeSocket *a, const bNodeSocket *b)
void node_update_internal_links_default(bNodeTree *ntree, bNode *node)
static bNodeSocket * node_find_linkable_socket(bNodeTree *ntree, bNode *node, bNodeSocket *to_socket)
void node_vector_math_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, int maxlen)
void node_socket_set_color(bNodeTree *ntree, bNode *UNUSED(node), bNodeSocket *sock, const float *value)
void node_image_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, int maxlen)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
float RNA_float_get(PointerRNA *ptr, const char *name)
void RNA_float_set(PointerRNA *ptr, const char *name, float value)
bool RNA_enum_name(const EnumPropertyItem *item, const int value, const char **r_name)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
const EnumPropertyItem rna_enum_ramp_blend_items[]
const EnumPropertyItem rna_enum_node_math_items[]
const EnumPropertyItem rna_enum_node_vec_math_items[]
const EnumPropertyItem rna_enum_node_filter_items[]
struct SELECTID_Context context
struct bNodeSocket * next
struct bNodeSocketType * typeinfo