15 return ELEM(socket_type,
56 return {&storage->input_items.items,
57 &storage->input_items.items_num,
58 &storage->input_items.active_index};
97 item.
identifier = storage->input_items.next_identifier++;
103 return "Item_" + std::to_string(item.
identifier);
130 return {&storage->output_items.items,
131 &storage->output_items.items_num,
132 &storage->output_items.active_index};
171 item.
identifier = storage->output_items.next_identifier++;
177 return "Item_" + std::to_string(item.
identifier);
204 return {&storage->input_items.items,
205 &storage->input_items.items_num,
206 &storage->input_items.active_index};
245 item.
identifier = storage->input_items.next_identifier++;
252 return "Item_" + std::to_string(item.
identifier);
279 return {&storage->output_items.items,
280 &storage->output_items.items_num,
281 &storage->output_items.active_index};
320 item.
identifier = storage->output_items.next_identifier++;
327 return "Item_" + std::to_string(item.
identifier);
char * BLI_strdup_null(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_MALLOC
void set_item_name_and_make_unique(bNode &node, typename Accessor::ItemT &item, const char *value)
const bNodeSocket * evaluate_closure_node_internally_linked_input(const bNodeSocket &output_socket)
bool socket_type_supported_in_closure(const eNodeSocketDatatype socket_type)
static constexpr StringRefNull remove_item
static constexpr StringRefNull add_item
static constexpr StringRefNull move_item
static constexpr StringRefNull items
static constexpr StringRefNull active_index
static constexpr StringRefNull list
static socket_items::SocketItemsRef< ItemT > get_items_from_node(bNode &node)
static void init_with_socket_type_and_name(bNode &node, ItemT &item, const eNodeSocketDatatype socket_type, const char *name)
static void destruct_item(ItemT *item)
static bool supports_socket_type(const eNodeSocketDatatype socket_type)
static constexpr bool has_type
static void copy_item(const ItemT &src, ItemT &dst)
static void blend_write_item(BlendWriter *writer, const ItemT &item)
static constexpr bool has_name
static std::string socket_identifier_for_item(const ItemT &item)
static char ** get_name(ItemT &item)
static StructRNA * item_srna
static eNodeSocketDatatype get_socket_type(const ItemT &item)
static void blend_read_data_item(BlendDataReader *reader, ItemT &item)
NodeGeometryClosureOutputItem ItemT
static constexpr StringRefNull node_idname
static constexpr StringRefNull move_item
static constexpr StringRefNull remove_item
static constexpr StringRefNull add_item
static constexpr StringRefNull active_index
static constexpr StringRefNull items
static constexpr StringRefNull list
static bool supports_socket_type(const eNodeSocketDatatype socket_type)
static constexpr StringRefNull node_idname
static void copy_item(const ItemT &src, ItemT &dst)
static void blend_read_data_item(BlendDataReader *reader, ItemT &item)
NodeGeometryEvaluateClosureOutputItem ItemT
static void blend_write_item(BlendWriter *writer, const ItemT &item)
static socket_items::SocketItemsRef< ItemT > get_items_from_node(bNode &node)
static std::string socket_identifier_for_item(const ItemT &item)
static constexpr bool has_name
static void destruct_item(ItemT *item)
static void init_with_socket_type_and_name(bNode &node, ItemT &item, const eNodeSocketDatatype socket_type, const char *name)
static constexpr bool has_type
static StructRNA * item_srna
static eNodeSocketDatatype get_socket_type(const ItemT &item)
static char ** get_name(ItemT &item)