15 return ELEM(socket_type,
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);
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);
194 static constexpr StringRefNull list =
"DATA_UL_evaluate_closure_input_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);
269 static constexpr StringRefNull list =
"DATA_UL_evaluate_closure_output_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
struct NodeGeometryClosureInputItem NodeGeometryClosureInputItem
struct NodeGeometryClosureOutputItem NodeGeometryClosureOutputItem
struct NodeGeometryEvaluateClosureOutputItem NodeGeometryEvaluateClosureOutputItem
struct NodeGeometryEvaluateClosureInputItem NodeGeometryEvaluateClosureInputItem
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)
NodeGeometryClosureOutputItem * items
NodeGeometryClosureOutputItems output_items
NodeGeometryClosureInputItems input_items
NodeGeometryEvaluateClosureOutputItem * items
NodeGeometryEvaluateClosureInputItems input_items
NodeGeometryEvaluateClosureOutputItems output_items
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 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 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)