35#define NOD_inline_enum_accessors(member) \
37 [](PointerRNA *ptr, PropertyRNA * ) -> int { \
38 const bNode &node = *static_cast<const bNode *>(ptr->data); \
41 [](PointerRNA *ptr, PropertyRNA * , const int value) { \
42 bNode &node = *static_cast<bNode *>(ptr->data); \
43 node.member = value; \
50#define NOD_storage_enum_accessors(member) \
52 [](PointerRNA *ptr, PropertyRNA * ) -> int { \
53 const bNode &node = *static_cast<const bNode *>(ptr->data); \
54 return node_storage(node).member; \
56 [](PointerRNA *ptr, PropertyRNA * , const int value) { \
57 bNode &node = *static_cast<bNode *>(ptr->data); \
58 node_storage(node).member = value; \
65 const char *identifier,
67 const char *ui_description,
69 const EnumRNAAccessors accessors,
70 std::optional<int> default_value = std::nullopt,
72 bool allow_animation =
false);
void rna_Node_socket_update(Main *bmain, Scene *scene, PointerRNA *ptr)
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
const EnumPropertyItem *(*)(bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free) EnumPropertyItemFunc
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)
const EnumPropertyItem * enum_items_filter(const EnumPropertyItem *original_item_array, FunctionRef< bool(const EnumPropertyItem &item)> fn)
EnumRNAAccessors(EnumPropertyGetFunc getter, EnumPropertySetFunc setter)
EnumPropertyGetFunc getter
EnumPropertySetFunc setter