27 uiItemR(layout,
ptr,
"operation", 0,
"", ICON_NONE);
52 if (!
params.node_tree().typeinfo->validate_link(
60 if (item->name !=
nullptr && item->identifier[0] !=
'\0') {
64 node.custom1 = operation;
65 params.update_and_connect_available_socket(
node,
"Boolean");
75 "And", [](
bool a,
bool b) {
return a &&
b; }, exec_preset};
77 "Or", [](
bool a,
bool b) {
return a ||
b; }, exec_preset};
80 "Not And", [](
bool a,
bool b) {
return !(
a &&
b); }, exec_preset};
82 "Nor", [](
bool a,
bool b) {
return !(
a ||
b); }, exec_preset};
84 "Equal", [](
bool a,
bool b) {
return a ==
b; }, exec_preset};
86 "Not Equal", [](
bool a,
bool b) {
return a !=
b; }, exec_preset};
88 "Imply", [](
bool a,
bool b) {
return !
a ||
b; }, exec_preset};
90 "Subtract", [](
bool a,
bool b) {
return a && !
b; }, exec_preset};
void node_type_update(struct bNodeType *ntype, void(*updatefunc)(struct bNodeTree *ntree, struct bNode *node))
#define NODE_CLASS_CONVERTER
void nodeSetSocketAvailability(struct bNodeTree *ntree, struct bNodeSocket *sock, bool is_available)
#define FN_NODE_BOOLEAN_MATH
void nodeRegisterType(struct bNodeType *ntype)
#define BLI_assert_unreachable()
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, size_t maxncpy) ATTR_NONNULL()
@ NODE_BOOLEAN_MATH_IMPLY
@ NODE_BOOLEAN_MATH_NIMPLY
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
void set_matching_fn(const MultiFunction *fn)
static void node_gather_link_searches(GatherLinkSearchOpParams ¶ms)
static void fn_node_boolean_math_declare(NodeDeclarationBuilder &b)
static const fn::MultiFunction * get_multi_function(bNode &bnode)
static void node_boolean_math_label(const bNodeTree *UNUSED(ntree), const bNode *node, char *label, int maxlen)
static void fn_node_boolean_math_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
static void node_boolean_math_update(bNodeTree *ntree, bNode *node)
static void fn_node_boolean_math_build_multi_function(NodeMultiFunctionBuilder &builder)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
void register_node_type_fn_boolean_math()
void fn_node_type_base(bNodeType *ntype, int type, const char *name, short nclass)
bool RNA_enum_name(const EnumPropertyItem *item, const int value, const char **r_name)
const EnumPropertyItem rna_enum_node_boolean_math_items[]
NodeGatherSocketLinkOperationsFunction gather_link_search_ops
void(* labelfunc)(const struct bNodeTree *ntree, const struct bNode *node, char *label, int maxlen)
void(* draw_buttons)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr)
NodeMultiFunctionBuildFunction build_multi_function
NodeDeclareFunction declare