37#define NOD_inline_enum_accessors(member) \
39 [](PointerRNA *ptr, PropertyRNA * ) -> int { \
40 const bNode &node = *static_cast<const bNode *>(ptr->data); \
43 [](PointerRNA *ptr, PropertyRNA * , const int value) { \
44 bNode &node = *static_cast<bNode *>(ptr->data); \
45 node.member = value; \
52#define NOD_storage_enum_accessors(member) \
54 [](PointerRNA *ptr, PropertyRNA * ) -> int { \
55 const bNode &node = *static_cast<const bNode *>(ptr->data); \
56 return node_storage(node).member; \
58 [](PointerRNA *ptr, PropertyRNA * , const int value) { \
59 bNode &node = *static_cast<bNode *>(ptr->data); \
60 node_storage(node).member = value; \
77#define NOD_inline_boolean_accessors(member, flag) \
78 BooleanRNAAccessors( \
79 [](PointerRNA *ptr, PropertyRNA * ) -> bool { \
80 const bNode &node = *static_cast<const bNode *>(ptr->data); \
81 return node.member & (flag); \
83 [](PointerRNA *ptr, PropertyRNA * , const bool value) { \
84 bNode &node = *static_cast<bNode *>(ptr->data); \
85 SET_FLAG_FROM_TEST(node.member, value, (flag)); \
92#define NOD_storage_boolean_accessors(member, flag) \
93 BooleanRNAAccessors( \
94 [](PointerRNA *ptr, PropertyRNA * ) -> bool { \
95 const bNode &node = *static_cast<const bNode *>(ptr->data); \
96 return node_storage(node).member & (flag); \
98 [](PointerRNA *ptr, PropertyRNA * , const bool value) { \
99 bNode &node = *static_cast<bNode *>(ptr->data); \
100 SET_FLAG_FROM_TEST(node_storage(node).member, value, (flag)); \
107 const char *identifier,
109 const char *ui_description,
111 const EnumRNAAccessors accessors,
112 std::optional<int> default_value = std::nullopt,
114 bool allow_animation =
false);
117 const char *identifier,
119 const char *ui_description,
120 const BooleanRNAAccessors accessors,
121 std::optional<bool> default_value = std::nullopt,
122 bool allow_animation =
false);
void rna_Node_socket_update(Main *bmain, Scene *scene, PointerRNA *ptr)
int rna_Node_Viewer_shortcut_node_get(PointerRNA *ptr, PropertyRNA *prop)
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
void(*)(PointerRNA *ptr, PropertyRNA *prop, int value) EnumPropertySetFunc
bool(*)(PointerRNA *ptr, PropertyRNA *prop) BooleanPropertyGetFunc
const EnumPropertyItem *(*)(bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free) EnumPropertyItemFunc
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