19 static constexpr const char *
node_idname =
"GeometryNodeCaptureAttribute";
28 return {&storage->
capture_items, &storage->capture_items_num, &storage->active_index};
79 return "Value_" + std::to_string(item.
identifier);
89 return "Attribute_" + std::to_string(item.
identifier);
CustomData interface, see also DNA_customdata_types.h.
char * BLI_strdup_null(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_MALLOC
struct NodeGeometryAttributeCaptureItem NodeGeometryAttributeCaptureItem
std::optional< eNodeSocketDatatype > custom_data_type_to_socket_type(eCustomDataType type)
std::optional< eCustomDataType > socket_type_to_custom_data_type(eNodeSocketDatatype type)
void set_item_name_and_make_unique(bNode &node, typename Accessor::ItemT &item, const char *value)
NodeGeometryAttributeCaptureItem * capture_items
static constexpr const char * node_idname
static constexpr bool has_name
static StructRNA * item_srna
static char ** get_name(NodeGeometryAttributeCaptureItem &item)
static void copy_item(const NodeGeometryAttributeCaptureItem &src, NodeGeometryAttributeCaptureItem &dst)
static bool supports_socket_type(const eNodeSocketDatatype socket_type)
static eNodeSocketDatatype get_socket_type(const NodeGeometryAttributeCaptureItem &item)
static constexpr bool has_single_identifier_str
static std::string input_socket_identifier_for_item(const NodeGeometryAttributeCaptureItem &item)
static socket_items::SocketItemsRef< NodeGeometryAttributeCaptureItem > get_items_from_node(bNode &node)
static constexpr bool has_type
static void init_with_socket_type_and_name(bNode &node, NodeGeometryAttributeCaptureItem &item, const eNodeSocketDatatype socket_type, const char *name)
static void destruct_item(NodeGeometryAttributeCaptureItem *item)
static void blend_read_data(BlendDataReader *reader, bNode &node)
static std::string output_socket_identifier_for_item(const NodeGeometryAttributeCaptureItem &item)
static void blend_write(BlendWriter *writer, const bNode &node)