21class AttributeAccessor;
72#define ATTR_DOMAIN_AS_MASK(domain) ((AttrDomainMask)((1 << (int)(domain))))
75#define ATTR_DOMAIN_MASK_COLOR \
76 ((AttrDomainMask)((ATTR_DOMAIN_MASK_POINT | ATTR_DOMAIN_MASK_CORNER)))
104 eCustomDataMask type,
109 eCustomDataMask type,
118 const char *old_name,
119 const char *new_name,
124 eCustomDataMask mask);
136 eCustomDataMask layer_mask);
142 eCustomDataMask layer_mask);
const char * BKE_id_attributes_default_color_name(const struct ID *id)
struct CustomDataLayer * BKE_attribute_search_for_write(AttributeOwner &owner, const char *name, eCustomDataMask type, AttrDomainMask domain_mask)
int BKE_attribute_to_index(const AttributeOwner &owner, const CustomDataLayer *layer, AttrDomainMask domain_mask, eCustomDataMask layer_mask)
const struct CustomDataLayer * BKE_id_attributes_color_find(const struct ID *id, const char *name)
void BKE_id_attributes_default_color_set(struct ID *id, const char *name)
void BKE_id_attributes_active_color_set(struct ID *id, const char *name)
std::string BKE_attribute_calc_unique_name(const AttributeOwner &owner, const blender::StringRef name)
struct CustomDataLayer * BKE_attribute_new(AttributeOwner &owner, const char *name, eCustomDataType type, blender::bke::AttrDomain domain, struct ReportList *reports)
const char * BKE_id_attributes_active_color_name(const struct ID *id)
bool BKE_color_attribute_supported(const struct Mesh &mesh, const blender::StringRef name)
blender::bke::AttrDomain BKE_attribute_domain(const AttributeOwner &owner, const struct CustomDataLayer *layer)
CustomData * BKE_attributes_iterator_next_domain(AttributeOwner &owner, struct CustomDataLayer *layers)
int BKE_attribute_domain_size(const AttributeOwner &owner, int domain)
CustomDataLayer * BKE_attribute_from_index(AttributeOwner &owner, int lookup_index, AttrDomainMask domain_mask, eCustomDataMask layer_mask)
@ ATTR_DOMAIN_MASK_GREASE_PENCIL_LAYER
@ ATTR_DOMAIN_MASK_CORNER
struct CustomDataLayer * BKE_attribute_duplicate(AttributeOwner &owner, const char *name, struct ReportList *reports)
struct CustomDataLayer * BKE_attribute_find(const AttributeOwner &owner, const char *name, eCustomDataType type, blender::bke::AttrDomain domain)
int * BKE_attributes_active_index_p(AttributeOwner &owner)
void BKE_id_attributes_active_color_clear(struct ID *id)
bool BKE_attribute_rename(AttributeOwner &owner, const char *old_name, const char *new_name, struct ReportList *reports)
int BKE_attribute_data_length(AttributeOwner &owner, struct CustomDataLayer *layer)
bool BKE_attribute_remove(AttributeOwner &owner, const char *name, struct ReportList *reports)
void BKE_attributes_active_set(AttributeOwner &owner, const char *name)
const char * BKE_uv_map_pin_name_get(const char *uv_map_name, char *buffer)
struct CustomDataLayer * BKE_attributes_active_get(AttributeOwner &owner)
int BKE_attributes_length(const AttributeOwner &owner, AttrDomainMask domain_mask, eCustomDataMask mask)
bool BKE_attribute_required(const AttributeOwner &owner, const char *name)
const char * BKE_uv_map_vert_select_name_get(const char *uv_map_name, char *buffer)
const char * BKE_uv_map_edge_select_name_get(const char *uv_map_name, char *buffer)
void BKE_attributes_active_clear(AttributeOwner &owner)
const struct CustomDataLayer * BKE_attribute_search(const AttributeOwner &owner, const char *name, eCustomDataMask type, AttrDomainMask domain_mask)
#define ENUM_OPERATORS(_type, _max)
AttributeOwnerType type() const
AttributeOwner(AttributeOwnerType type, void *ptr)
static AttributeOwner from_id(ID *id)
GreasePencil * get_grease_pencil() const
PointCloud * get_pointcloud() const
Curves * get_curves() const
GreasePencilDrawing * get_grease_pencil_drawing() const