Blender  V3.3
Macros | Typedefs | Enumerations | Functions
BKE_attribute.h File Reference

Generic geometry attributes built on CustomData. More...

#include "BLI_sys_types.h"
#include "BKE_customdata.h"

Go to the source code of this file.

Macros

#define ATTR_DOMAIN_NUM   6
 
#define ATTR_DOMAIN_AS_MASK(domain)   ((eAttrDomainMask)((1 << (int)(domain))))
 
#define ATTR_DOMAIN_MASK_COLOR    ((eAttrDomainMask)((ATTR_DOMAIN_MASK_POINT | ATTR_DOMAIN_MASK_CORNER)))
 

Typedefs

typedef enum eAttrDomain eAttrDomain
 
typedef enum eAttrDomainMask eAttrDomainMask
 

Enumerations

enum  eAttrDomain {
  ATTR_DOMAIN_AUTO = -1 , ATTR_DOMAIN_POINT = 0 , ATTR_DOMAIN_EDGE = 1 , ATTR_DOMAIN_FACE = 2 ,
  ATTR_DOMAIN_CORNER = 3 , ATTR_DOMAIN_CURVE = 4 , ATTR_DOMAIN_INSTANCE = 5
}
 
enum  eAttrDomainMask {
  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_ALL = (1 << 5) - 1
}
 

Functions

bool BKE_id_attributes_supported (const struct ID *id)
 
bool BKE_attribute_allow_procedural_access (const char *attribute_name)
 
struct CustomDataLayerBKE_id_attribute_new (struct ID *id, const char *name, int type, eAttrDomain domain, struct ReportList *reports)
 
bool BKE_id_attribute_remove (struct ID *id, const char *name, struct ReportList *reports)
 
struct CustomDataLayerBKE_id_attribute_duplicate (struct ID *id, const char *name, struct ReportList *reports)
 
struct CustomDataLayerBKE_id_attribute_find (const struct ID *id, const char *name, int type, eAttrDomain domain)
 
struct CustomDataLayerBKE_id_attribute_search (struct ID *id, const char *name, eCustomDataMask type, eAttrDomainMask domain_mask)
 
eAttrDomain BKE_id_attribute_domain (const struct ID *id, const struct CustomDataLayer *layer)
 
int BKE_id_attribute_data_length (struct ID *id, struct CustomDataLayer *layer)
 
bool BKE_id_attribute_required (const struct ID *id, const char *name)
 
bool BKE_id_attribute_rename (struct ID *id, const char *old_name, const char *new_name, struct ReportList *reports)
 
int BKE_id_attributes_length (const struct ID *id, eAttrDomainMask domain_mask, eCustomDataMask mask)
 
struct CustomDataLayerBKE_id_attributes_active_get (struct ID *id)
 
void BKE_id_attributes_active_set (struct ID *id, struct CustomDataLayer *layer)
 
int * BKE_id_attributes_active_index_p (struct ID *id)
 
CustomDataBKE_id_attributes_iterator_next_domain (struct ID *id, struct CustomDataLayer *layers)
 
CustomDataLayerBKE_id_attribute_from_index (struct ID *id, int lookup_index, eAttrDomainMask domain_mask, eCustomDataMask layer_mask)
 
int BKE_id_attribute_to_index (const struct ID *id, const CustomDataLayer *layer, eAttrDomainMask domain_mask, eCustomDataMask layer_mask)
 
struct CustomDataLayerBKE_id_attribute_subset_active_get (const struct ID *id, int active_flag, eAttrDomainMask domain_mask, eCustomDataMask mask)
 
void BKE_id_attribute_subset_active_set (struct ID *id, struct CustomDataLayer *layer, int active_flag, eAttrDomainMask domain_mask, eCustomDataMask mask)
 
void BKE_id_attribute_copy_domains_temp (short id_type, const struct CustomData *vdata, const struct CustomData *edata, const struct CustomData *ldata, const struct CustomData *pdata, const struct CustomData *cdata, struct ID *r_id)
 
struct CustomDataLayerBKE_id_attributes_active_color_get (const struct ID *id)
 
void BKE_id_attributes_active_color_set (struct ID *id, struct CustomDataLayer *active_layer)
 
struct CustomDataLayerBKE_id_attributes_render_color_get (const struct ID *id)
 
void BKE_id_attributes_render_color_set (struct ID *id, struct CustomDataLayer *active_layer)
 
struct CustomDataLayerBKE_id_attributes_color_find (const struct ID *id, const char *name)
 
bool BKE_id_attribute_calc_unique_name (struct ID *id, const char *name, char *outname)
 

Detailed Description

Generic geometry attributes built on CustomData.

Definition in file BKE_attribute.h.

Macro Definition Documentation

◆ ATTR_DOMAIN_AS_MASK

#define ATTR_DOMAIN_AS_MASK (   domain)    ((eAttrDomainMask)((1 << (int)(domain))))

Definition at line 45 of file BKE_attribute.h.

◆ ATTR_DOMAIN_MASK_COLOR

#define ATTR_DOMAIN_MASK_COLOR    ((eAttrDomainMask)((ATTR_DOMAIN_MASK_POINT | ATTR_DOMAIN_MASK_CORNER)))

Definition at line 48 of file BKE_attribute.h.

◆ ATTR_DOMAIN_NUM

#define ATTR_DOMAIN_NUM   6

Definition at line 34 of file BKE_attribute.h.

Typedef Documentation

◆ eAttrDomain

typedef enum eAttrDomain eAttrDomain

#Attribute.domain

◆ eAttrDomainMask

Enumeration Type Documentation

◆ eAttrDomain

#Attribute.domain

Enumerator
ATTR_DOMAIN_AUTO 
ATTR_DOMAIN_POINT 
ATTR_DOMAIN_EDGE 
ATTR_DOMAIN_FACE 
ATTR_DOMAIN_CORNER 
ATTR_DOMAIN_CURVE 
ATTR_DOMAIN_INSTANCE 

Definition at line 25 of file BKE_attribute.h.

◆ eAttrDomainMask

Enumerator
ATTR_DOMAIN_MASK_POINT 
ATTR_DOMAIN_MASK_EDGE 
ATTR_DOMAIN_MASK_FACE 
ATTR_DOMAIN_MASK_CORNER 
ATTR_DOMAIN_MASK_CURVE 
ATTR_DOMAIN_MASK_ALL 

Definition at line 36 of file BKE_attribute.h.

Function Documentation

◆ BKE_attribute_allow_procedural_access()

bool BKE_attribute_allow_procedural_access ( const char *  attribute_name)

◆ BKE_id_attribute_calc_unique_name()

bool BKE_id_attribute_calc_unique_name ( struct ID id,
const char *  name,
char *  outname 
)

◆ BKE_id_attribute_copy_domains_temp()

void BKE_id_attribute_copy_domains_temp ( short  id_type,
const struct CustomData vdata,
const struct CustomData edata,
const struct CustomData ldata,
const struct CustomData pdata,
const struct CustomData cdata,
struct ID r_id 
)

Sets up a temporary ID with arbitrary CustomData domains. r_id will be zero initialized with ID type id_type and any non-nullptr CustomData parameter will be copied into the appropriate struct members.

Parameters
r_idPointer to storage sufficient for ID type-code id_type.

Referenced by bmo_get_loop_color_ref(), GPU_pbvh_attribute_names_update(), GPU_pbvh_mesh_buffers_update(), mesh_cd_calc_used_gpu_layers(), request_active_and_default_color_attributes(), and retrieve_active_attribute_names().

◆ BKE_id_attribute_data_length()

int BKE_id_attribute_data_length ( struct ID id,
struct CustomDataLayer layer 
)

◆ BKE_id_attribute_domain()

eAttrDomain BKE_id_attribute_domain ( const struct ID id,
const struct CustomDataLayer layer 
)

◆ BKE_id_attribute_duplicate()

struct CustomDataLayer* BKE_id_attribute_duplicate ( struct ID id,
const char *  name,
struct ReportList reports 
)

◆ BKE_id_attribute_find()

struct CustomDataLayer* BKE_id_attribute_find ( const struct ID id,
const char *  name,
int  type,
eAttrDomain  domain 
)

◆ BKE_id_attribute_from_index()

CustomDataLayer* BKE_id_attribute_from_index ( struct ID id,
int  lookup_index,
eAttrDomainMask  domain_mask,
eCustomDataMask  layer_mask 
)

◆ BKE_id_attribute_new()

struct CustomDataLayer* BKE_id_attribute_new ( struct ID id,
const char *  name,
int  type,
eAttrDomain  domain,
struct ReportList reports 
)

◆ BKE_id_attribute_remove()

bool BKE_id_attribute_remove ( struct ID id,
const char *  name,
struct ReportList reports 
)

◆ BKE_id_attribute_rename()

bool BKE_id_attribute_rename ( struct ID id,
const char *  old_name,
const char *  new_name,
struct ReportList reports 
)

◆ BKE_id_attribute_required()

bool BKE_id_attribute_required ( const struct ID id,
const char *  name 
)

◆ BKE_id_attribute_search()

struct CustomDataLayer* BKE_id_attribute_search ( struct ID id,
const char *  name,
eCustomDataMask  type,
eAttrDomainMask  domain_mask 
)

◆ BKE_id_attribute_subset_active_get()

struct CustomDataLayer* BKE_id_attribute_subset_active_get ( const struct ID id,
int  active_flag,
eAttrDomainMask  domain_mask,
eCustomDataMask  mask 
)

◆ BKE_id_attribute_subset_active_set()

void BKE_id_attribute_subset_active_set ( struct ID id,
struct CustomDataLayer layer,
int  active_flag,
eAttrDomainMask  domain_mask,
eCustomDataMask  mask 
)

◆ BKE_id_attribute_to_index()

int BKE_id_attribute_to_index ( const struct ID id,
const CustomDataLayer layer,
eAttrDomainMask  domain_mask,
eCustomDataMask  layer_mask 
)

Layer is allowed to be nullptr; if so -1 (layer not found) will be returned.

Referenced by edbm_reverse_colors_exec(), edbm_rotate_colors_exec(), and blender::ed::geometry::next_color_attribute().

◆ BKE_id_attributes_active_color_get()

struct CustomDataLayer* BKE_id_attributes_active_color_get ( const struct ID id)

◆ BKE_id_attributes_active_color_set()

void BKE_id_attributes_active_color_set ( struct ID id,
struct CustomDataLayer active_layer 
)

◆ BKE_id_attributes_active_get()

struct CustomDataLayer* BKE_id_attributes_active_get ( struct ID id)

◆ BKE_id_attributes_active_index_p()

int* BKE_id_attributes_active_index_p ( struct ID id)

◆ BKE_id_attributes_active_set()

void BKE_id_attributes_active_set ( struct ID id,
struct CustomDataLayer layer 
)

◆ BKE_id_attributes_color_find()

struct CustomDataLayer* BKE_id_attributes_color_find ( const struct ID id,
const char *  name 
)

◆ BKE_id_attributes_iterator_next_domain()

CustomData* BKE_id_attributes_iterator_next_domain ( struct ID id,
struct CustomDataLayer layers 
)

◆ BKE_id_attributes_length()

int BKE_id_attributes_length ( const struct ID id,
eAttrDomainMask  domain_mask,
eCustomDataMask  mask 
)

◆ BKE_id_attributes_render_color_get()

struct CustomDataLayer* BKE_id_attributes_render_color_get ( const struct ID id)

◆ BKE_id_attributes_render_color_set()

void BKE_id_attributes_render_color_set ( struct ID id,
struct CustomDataLayer active_layer 
)

◆ BKE_id_attributes_supported()

bool BKE_id_attributes_supported ( const struct ID id)