17#include "RNA_prototypes.hh"
46 if (zone->input_node == active_node) {
48 active_node =
const_cast<bNode *
>(zone->output_node);
51 if (active_node->
type != node_type) {
72template<
typename Accessor>
76 const char *description)
96template<
typename Accessor>
100 const char *description)
110 const int index_to_remove =
RNA_int_get(op->ptr,
"index");
122template<
typename Accessor>
126 const char *description)
137 const typename Accessor::ItemT *active_item =
nullptr;
141 if (old_active_index >= 0 && old_active_index < *ref.
items_num) {
142 active_item = &(*ref.
items)[old_active_index];
143 dst_index = active_item ? old_active_index + 1 : *ref.
items_num;
147 if constexpr (Accessor::has_type && Accessor::has_name) {
151 Accessor::get_socket_type(*active_item) :
154 active_item ? active_item->name :
"");
156 else if constexpr (!Accessor::has_type && Accessor::has_name) {
159 else if constexpr (!Accessor::has_type && !Accessor::has_name) {
181template<
typename Accessor>
185 const char *description)
215 {0,
nullptr, 0,
nullptr,
nullptr},
218 RNA_def_enum(
ot->
srna,
"direction", direction_items, 0,
"Direction",
"Move direction");
SpaceNode * CTX_wm_space_node(const bContext *C)
Main * CTX_data_main(const bContext *C)
void BKE_ntree_update_tag_node_property(bNodeTree *ntree, bNode *node)
#define BLI_assert_unreachable()
#define ID_IS_EDITABLE(_id)
void ED_node_tree_propagate_change(const bContext *C, Main *bmain, bNodeTree *ntree)
constexpr PointerRNA PointerRNA_NULL
const bNodeTreeZone * get_zone_by_node(const int32_t node_id) const
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
bNode * node_get_active(bNodeTree *ntree)
void remove_index(T **items, int *items_num, int *active_index, const int index, void(*destruct_item)(T *))
void move_index(T *items, const int items_num, const int from_index, const int to_index)
void remove_item_by_index(wmOperatorType *ot, const char *name, const char *idname, const char *description)
void move_active_item(wmOperatorType *ot, const char *name, const char *idname, const char *description)
void remove_active_item(wmOperatorType *ot, const char *name, const char *idname, const char *description)
PointerRNA get_active_node_to_operate_on(bContext *C, const int node_type)
void update_after_node_change(bContext *C, const PointerRNA node_ptr)
bool editable_node_active_poll(bContext *C)
void add_item(wmOperatorType *ot, const char *name, const char *idname, const char *description)
Accessor::ItemT * add_item_with_name(bNode &node, const char *name)
Accessor::ItemT * add_item(bNode &node)
Accessor::ItemT * add_item_with_socket_type_and_name(bNode &node, const eNodeSocketDatatype socket_type, const char *name)
int RNA_int_get(PointerRNA *ptr, const char *name)
PointerRNA RNA_pointer_create(ID *id, StructRNA *type, void *data)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
struct bNodeTree * edittree
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
void WM_main_add_notifier(uint type, void *reference)