40#define NOD_inline_enum_accessors(member) \
42 [](PointerRNA *ptr, PropertyRNA * ) -> int { \
43 const bNode &node = *static_cast<const bNode *>(ptr->data); \
46 [](PointerRNA *ptr, PropertyRNA * , const int value) { \
47 bNode &node = *static_cast<bNode *>(ptr->data); \
48 node.member = value; \
55#define NOD_storage_enum_accessors(member) \
57 [](PointerRNA *ptr, PropertyRNA * ) -> int { \
58 const bNode &node = *static_cast<const bNode *>(ptr->data); \
59 return node_storage(node).member; \
61 [](PointerRNA *ptr, PropertyRNA * , const int value) { \
62 bNode &node = *static_cast<bNode *>(ptr->data); \
63 node_storage(node).member = value; \
80#define NOD_inline_boolean_accessors(member, flag) \
81 BooleanRNAAccessors( \
82 [](PointerRNA *ptr, PropertyRNA * ) -> bool { \
83 const bNode &node = *static_cast<const bNode *>(ptr->data); \
84 return node.member & (flag); \
86 [](PointerRNA *ptr, PropertyRNA * , const bool value) { \
87 bNode &node = *static_cast<bNode *>(ptr->data); \
88 SET_FLAG_FROM_TEST(node.member, value, (flag)); \
95#define NOD_storage_boolean_accessors(member, flag) \
96 BooleanRNAAccessors( \
97 [](PointerRNA *ptr, PropertyRNA * ) -> bool { \
98 const bNode &node = *static_cast<const bNode *>(ptr->data); \
99 return node_storage(node).member & (flag); \
101 [](PointerRNA *ptr, PropertyRNA * , const bool value) { \
102 bNode &node = *static_cast<bNode *>(ptr->data); \
103 SET_FLAG_FROM_TEST(node_storage(node).member, value, (flag)); \
110 const char *identifier,
112 const char *ui_description,
114 const EnumRNAAccessors accessors,
115 std::optional<int> default_value = std::nullopt,
117 bool allow_animation =
false);
120 const char *identifier,
122 const char *ui_description,
123 const BooleanRNAAccessors accessors,
124 std::optional<bool> default_value = std::nullopt,
125 bool allow_animation =
false);
void rna_Node_socket_update(Main *bmain, Scene *scene, PointerRNA *ptr)
const EnumPropertyItem * rna_NodeSocket_structure_type_item_filter(const bNodeTree *ntree, const eNodeSocketDatatype socket_type, bool *r_free)
void rna_Node_Viewer_shortcut_node_set(PointerRNA *ptr, PropertyRNA *prop, int value)
void rna_Node_update_relations(Main *bmain, Scene *scne, PointerRNA *ptr)
void rna_Node_update(Main *bmain, Scene *scene, PointerRNA *ptr)
int(*)(PointerRNA *ptr, PropertyRNA *prop) EnumPropertyGetFunc
const EnumPropertyItem *(*)(bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free) EnumPropertyItemFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, int value) EnumPropertySetFunc
bool(*)(PointerRNA *ptr, PropertyRNA *prop) BooleanPropertyGetFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, bool value) BooleanPropertySetFunc
PropertyRNA * RNA_def_node_enum(StructRNA *srna, const char *identifier, const char *ui_name, const char *ui_description, const EnumPropertyItem *static_items, const EnumRNAAccessors accessors, std::optional< int > default_value, const EnumPropertyItemFunc item_func, const bool allow_animation)
PropertyRNA * RNA_def_node_boolean(StructRNA *srna, const char *identifier, const char *ui_name, const char *ui_description, const BooleanRNAAccessors accessors, std::optional< bool > default_value, bool allow_animation)
const EnumPropertyItem * enum_items_filter(const EnumPropertyItem *original_item_array, FunctionRef< bool(const EnumPropertyItem &item)> fn)
BooleanPropertySetFunc setter
BooleanPropertyGetFunc getter
BooleanRNAAccessors(BooleanPropertyGetFunc getter, BooleanPropertySetFunc setter)
EnumRNAAccessors(EnumPropertyGetFunc getter, EnumPropertySetFunc setter)
EnumPropertyGetFunc getter
EnumPropertySetFunc setter