84 if (
node->typeinfo->poll(
node->typeinfo, nodetree, disabled_hint)) {
104 if (grouptree ==
NULL) {
108 if (nodetree == grouptree) {
109 *r_disabled_hint =
"Nesting a node group inside of itself is not allowed";
114 if (
node->typeinfo->poll_instance &&
115 !
node->typeinfo->poll_instance(
node, nodetree, r_disabled_hint)) {
129 for (sock = verify_lb->
first; sock; sock = sock->
next) {
166 iosock = iosock_lb->
first;
167 for (; iosock; iosock = iosock->
next) {
172 for (sock = verify_lb->
first; sock; sock = nextsock) {
173 nextsock = sock->
next;
177 iosock = iosock_lb->
first;
178 for (; iosock; iosock = iosock->
next) {
217 data->label_size = 20;
301 if (!tonode || !fromnode) {
333 if (link->
tosock == input) {
416 if (
node->id ==
id) {
436 for (sock =
node->outputs.first; sock; sock = sock->
next) {
457 linknext = link->
next;
473 for (link = tmplinks.
first; link; link = link->
next) {
494 for (link = tmplinks.
first; link; link = link->
next) {
533 for (sock =
node->inputs.first; sock; sock = sock->
next) {
554 linknext = link->
next;
559 if (link->
tosock == extsock) {
570 for (link = tmplinks.
first; link; link = link->
next) {
592 for (link = tmplinks.
first; link; link = link->
next) {
#define NODE_CLASS_OUTPUT
void node_type_base(struct bNodeType *ntype, int type, const char *name, short nclass, short flag)
void node_type_size(struct bNodeType *ntype, int width, int minwidth, int maxwidth)
bool nodeLinkIsHidden(const struct bNodeLink *link)
#define NODE_CLASS_INTERFACE
struct bNodeSocket * nodeAddSocket(struct bNodeTree *ntree, struct bNode *node, eNodeSocketInOut in_out, const char *idname, const char *identifier, const char *name)
void node_type_update(struct bNodeType *ntype, void(*updatefunc)(struct bNodeTree *ntree, struct bNode *node))
void node_type_init(struct bNodeType *ntype, void(*initfunc)(struct bNodeTree *ntree, struct bNode *node))
void nodeRemoveAllSockets(struct bNodeTree *ntree, struct bNode *node)
void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link)
struct bNodeSocket * nodeAddStaticSocket(struct bNodeTree *ntree, struct bNode *node, eNodeSocketInOut in_out, int type, int subtype, const char *identifier, const char *name)
struct bNodeSocket * ntreeAddSocketInterfaceFromSocket(struct bNodeTree *ntree, struct bNode *from_node, struct bNodeSocket *from_sock)
int nodeSocketLinkLimit(const struct bNodeSocket *sock)
void node_type_internal_links(struct bNodeType *ntype, void(*update_internal_links)(struct bNodeTree *, struct bNode *))
const char * nodeStaticSocketType(int type, int subtype)
void node_type_storage(struct bNodeType *ntype, const char *storagename, void(*freefunc)(struct bNode *node), void(*copyfunc)(struct bNodeTree *dest_ntree, struct bNode *dest_node, const struct bNode *src_node))
struct bNodeLink * nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock)
void nodeRemoveSocket(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock)
#define NODE_CLASS_LAYOUT
void nodeUpdateInternalLinks(struct bNodeTree *ntree, struct bNode *node)
void nodeRegisterType(struct bNodeType *ntype)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
#define ID_IS_LINKED(_id)
#define NODE_FRAME_SHRINK
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void node_reroute_update_internal_links(bNodeTree *ntree, bNode *node)
static void node_reroute_inherit_type_recursive(bNodeTree *ntree, bNode *node, int flag)
static void group_verify_socket_list(bNodeTree *ntree, bNode *gnode, ListBase *iosock_lb, ListBase *verify_lb, int in_out)
bNodeSocket * node_group_output_find_socket(bNode *node, const char *identifier)
void BKE_node_tree_unlink_id(ID *id, struct bNodeTree *ntree)
static void node_reroute_init(bNodeTree *ntree, bNode *node)
void node_group_update(struct bNodeTree *ntree, struct bNode *node)
bool node_group_poll_instance(bNode *node, bNodeTree *nodetree, const char **disabled_hint)
static bool node_is_connected_to_output_recursive(bNodeTree *ntree, bNode *node)
void register_node_type_frame(void)
void ntree_update_reroute_nodes(bNodeTree *ntree)
void register_node_type_group_input(void)
void node_group_input_update(bNodeTree *ntree, bNode *node)
static void node_group_output_init(bNodeTree *ntree, bNode *node)
bool BKE_node_is_connected_to_output(bNodeTree *ntree, bNode *node)
bNodeSocket * node_group_find_output_socket(bNode *groupnode, const char *identifier)
static void node_frame_init(bNodeTree *UNUSED(ntree), bNode *node)
bNodeSocket * node_group_input_find_socket(bNode *node, const char *identifier)
void register_node_type_reroute(void)
void node_group_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, int maxlen)
static void node_group_input_init(bNodeTree *ntree, bNode *node)
bool nodeGroupPoll(bNodeTree *nodetree, bNodeTree *grouptree, const char **r_disabled_hint)
bNodeSocket * node_group_find_input_socket(bNode *groupnode, const char *identifier)
void node_group_output_update(bNodeTree *ntree, bNode *node)
static bNodeSocket * group_verify_socket(bNodeTree *ntree, bNode *gnode, bNodeSocket *iosock, ListBase *verify_lb, int in_out)
void register_node_type_group_output(void)
void node_copy_standard_storage(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, const bNode *src_node)
void node_free_standard_storage(bNode *node)
void(* interface_init_socket)(struct bNodeTree *ntree, struct bNodeSocket *stemp, struct bNode *node, struct bNodeSocket *sock, const char *data_path)
void(* interface_verify_socket)(struct bNodeTree *ntree, struct bNodeSocket *stemp, struct bNode *node, struct bNodeSocket *sock, const char *data_path)
struct bNodeSocket * new_sock
struct bNodeSocket * next
struct bNodeSocketType * typeinfo
void(* free_self)(struct bNodeType *ntype)
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)