Blender V4.3
BKE_attribute.h File Reference

Generic geometry attributes built on CustomData. More...

#include <string>
#include "BLI_string_ref.hh"
#include "BLI_sys_types.h"
#include "DNA_customdata_types.h"

Go to the source code of this file.

Classes

class  AttributeOwner
 

Namespaces

namespace  blender
 
namespace  blender::bke
 

Macros

#define ATTR_DOMAIN_AS_MASK(domain)   ((AttrDomainMask)((1 << (int)(domain))))
 
#define ATTR_DOMAIN_MASK_COLOR    ((AttrDomainMask)((ATTR_DOMAIN_MASK_POINT | ATTR_DOMAIN_MASK_CORNER)))
 

Typedefs

typedef enum AttrDomainMask AttrDomainMask
 

Enumerations

enum  AttrDomainMask {
  ATTR_DOMAIN_MASK_POINT = (1 << 0) , ATTR_DOMAIN_MASK_EDGE = (1 << 1) , ATTR_DOMAIN_MASK_FACE = (1 << 2) , ATTR_DOMAIN_MASK_CORNER = (1 << 3) ,
  ATTR_DOMAIN_MASK_CURVE = (1 << 4) , ATTR_DOMAIN_MASK_GREASE_PENCIL_LAYER = (1 << 6) , ATTR_DOMAIN_MASK_ALL = (1 << 7) - 1
}
 
enum class  AttributeOwnerType {
  Mesh , PointCloud , Curves , GreasePencil ,
  GreasePencilDrawing
}
 

Functions

 ENUM_OPERATORS (AttrDomainMask, ATTR_DOMAIN_MASK_ALL)
 
struct CustomDataLayerBKE_attribute_new (AttributeOwner &owner, const char *name, eCustomDataType type, blender::bke::AttrDomain domain, struct ReportList *reports)
 
bool BKE_attribute_remove (AttributeOwner &owner, const char *name, struct ReportList *reports)
 
struct CustomDataLayerBKE_attribute_duplicate (AttributeOwner &owner, const char *name, struct ReportList *reports)
 
struct CustomDataLayerBKE_attribute_find (const AttributeOwner &owner, const char *name, eCustomDataType type, blender::bke::AttrDomain domain)
 
const struct CustomDataLayerBKE_attribute_search (const AttributeOwner &owner, const char *name, eCustomDataMask type, AttrDomainMask domain_mask)
 
struct CustomDataLayerBKE_attribute_search_for_write (AttributeOwner &owner, const char *name, eCustomDataMask type, AttrDomainMask domain_mask)
 
blender::bke::AttrDomain BKE_attribute_domain (const AttributeOwner &owner, const struct CustomDataLayer *layer)
 
int BKE_attribute_domain_size (const AttributeOwner &owner, int domain)
 
int BKE_attribute_data_length (AttributeOwner &owner, struct CustomDataLayer *layer)
 
bool BKE_attribute_required (const AttributeOwner &owner, const char *name)
 
bool BKE_attribute_rename (AttributeOwner &owner, const char *old_name, const char *new_name, struct ReportList *reports)
 
int BKE_attributes_length (const AttributeOwner &owner, AttrDomainMask domain_mask, eCustomDataMask mask)
 
struct CustomDataLayerBKE_attributes_active_get (AttributeOwner &owner)
 
void BKE_attributes_active_set (AttributeOwner &owner, const char *name)
 
void BKE_attributes_active_clear (AttributeOwner &owner)
 
intBKE_attributes_active_index_p (AttributeOwner &owner)
 
CustomDataBKE_attributes_iterator_next_domain (AttributeOwner &owner, struct CustomDataLayer *layers)
 
CustomDataLayerBKE_attribute_from_index (AttributeOwner &owner, int lookup_index, AttrDomainMask domain_mask, eCustomDataMask layer_mask)
 
int BKE_attribute_to_index (const AttributeOwner &owner, const CustomDataLayer *layer, AttrDomainMask domain_mask, eCustomDataMask layer_mask)
 
const char * BKE_id_attributes_active_color_name (const struct ID *id)
 
const char * BKE_id_attributes_default_color_name (const struct ID *id)
 
void BKE_id_attributes_active_color_set (struct ID *id, const char *name)
 
void BKE_id_attributes_active_color_clear (struct ID *id)
 
void BKE_id_attributes_default_color_set (struct ID *id, const char *name)
 
const struct CustomDataLayerBKE_id_attributes_color_find (const struct ID *id, const char *name)
 
bool BKE_color_attribute_supported (const struct Mesh &mesh, const blender::StringRef name)
 
std::string BKE_attribute_calc_unique_name (const AttributeOwner &owner, const blender::StringRef 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)
 
const char * BKE_uv_map_pin_name_get (const char *uv_map_name, char *buffer)
 

Detailed Description

Generic geometry attributes built on CustomData.

Definition in file BKE_attribute.h.

Macro Definition Documentation

◆ ATTR_DOMAIN_AS_MASK

◆ ATTR_DOMAIN_MASK_COLOR

Typedef Documentation

◆ AttrDomainMask

Enumeration Type Documentation

◆ AttrDomainMask

Enumerator
ATTR_DOMAIN_MASK_POINT 
ATTR_DOMAIN_MASK_EDGE 
ATTR_DOMAIN_MASK_FACE 
ATTR_DOMAIN_MASK_CORNER 
ATTR_DOMAIN_MASK_CURVE 
ATTR_DOMAIN_MASK_GREASE_PENCIL_LAYER 
ATTR_DOMAIN_MASK_ALL 

Definition at line 33 of file BKE_attribute.h.

◆ AttributeOwnerType

enum class AttributeOwnerType
strong
Enumerator
Mesh 
PointCloud 
Curves 
GreasePencil 
GreasePencilDrawing 

Definition at line 44 of file BKE_attribute.h.

Function Documentation

◆ BKE_attribute_calc_unique_name()

◆ BKE_attribute_data_length()

◆ BKE_attribute_domain()

◆ BKE_attribute_domain_size()

int BKE_attribute_domain_size ( const AttributeOwner & owner,
int domain )

Definition at line 730 of file attribute.cc.

References get_domains().

◆ BKE_attribute_duplicate()

◆ BKE_attribute_find()

struct CustomDataLayer * BKE_attribute_find ( const AttributeOwner & owner,
const char * name,
eCustomDataType type,
blender::bke::AttrDomain domain )

◆ BKE_attribute_from_index()

◆ BKE_attribute_new()

◆ BKE_attribute_remove()

◆ BKE_attribute_rename()

◆ BKE_attribute_required()

◆ BKE_attribute_search()

◆ BKE_attribute_search_for_write()

struct CustomDataLayer * BKE_attribute_search_for_write ( AttributeOwner & owner,
const char * name,
eCustomDataMask type,
AttrDomainMask domain_mask )

◆ BKE_attribute_to_index()

int BKE_attribute_to_index ( const AttributeOwner & owner,
const CustomDataLayer * layer,
AttrDomainMask domain_mask,
eCustomDataMask layer_mask )

◆ BKE_attributes_active_clear()

void BKE_attributes_active_clear ( AttributeOwner & owner)

Definition at line 827 of file attribute.cc.

References BKE_attributes_active_index_p().

◆ BKE_attributes_active_get()

◆ BKE_attributes_active_index_p()

◆ BKE_attributes_active_set()

◆ BKE_attributes_iterator_next_domain()

CustomData * BKE_attributes_iterator_next_domain ( AttributeOwner & owner,
struct CustomDataLayer * layers )

Definition at line 854 of file attribute.cc.

References ATTR_DOMAIN_NUM, get_domains(), CustomData::layers, and CustomData::totlayer.

◆ BKE_attributes_length()

int BKE_attributes_length ( const AttributeOwner & owner,
AttrDomainMask domain_mask,
eCustomDataMask mask )

◆ BKE_color_attribute_supported()

bool BKE_color_attribute_supported ( const struct Mesh & mesh,
const blender::StringRef name )

◆ BKE_id_attributes_active_color_clear()

void BKE_id_attributes_active_color_clear ( struct ID * id)

Definition at line 981 of file attribute.cc.

References GS, ID_ME, and MEM_SAFE_FREE.

◆ BKE_id_attributes_active_color_name()

◆ BKE_id_attributes_active_color_set()

◆ BKE_id_attributes_color_find()

◆ BKE_id_attributes_default_color_name()

const char * BKE_id_attributes_default_color_name ( const struct ID * id)

◆ BKE_id_attributes_default_color_set()

◆ BKE_uv_map_edge_select_name_get()

◆ BKE_uv_map_pin_name_get()

◆ BKE_uv_map_vert_select_name_get()

◆ ENUM_OPERATORS()

ENUM_OPERATORS ( AttrDomainMask ,
ATTR_DOMAIN_MASK_ALL  )