Blender  V3.3
Classes | Namespaces | Functions
attribute.cc File Reference
#include <cstring>
#include <optional>
#include "MEM_guardedalloc.h"
#include "DNA_ID.h"
#include "DNA_curves_types.h"
#include "DNA_customdata_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_pointcloud_types.h"
#include "BLI_index_range.hh"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BLI_string_utils.h"
#include "BLT_translation.h"
#include "BKE_attribute.h"
#include "BKE_attribute.hh"
#include "BKE_curves.hh"
#include "BKE_customdata.h"
#include "BKE_editmesh.h"
#include "BKE_pointcloud.h"
#include "BKE_report.h"
#include "RNA_access.h"

Go to the source code of this file.

Classes

struct  DomainInfo
 
struct  AttrUniqueData
 

Namespaces

 blender
 
 blender::bke
 

Functions

static void get_domains (const ID *id, DomainInfo info[ATTR_DOMAIN_NUM])
 
static std::optional< blender::bke::MutableAttributeAccessorblender::bke::get_attribute_accessor_for_write (ID &id)
 
bool BKE_id_attributes_supported (const ID *id)
 
bool BKE_attribute_allow_procedural_access (const char *attribute_name)
 
bool BKE_id_attribute_rename (ID *id, const char *old_name, const char *new_name, ReportList *reports)
 
static bool unique_name_cb (void *arg, const char *name)
 
bool BKE_id_attribute_calc_unique_name (ID *id, const char *name, char *outname)
 
CustomDataLayerBKE_id_attribute_new (ID *id, const char *name, const int type, const eAttrDomain domain, ReportList *reports)
 
CustomDataLayerBKE_id_attribute_duplicate (ID *id, const char *name, ReportList *reports)
 
bool BKE_id_attribute_remove (ID *id, const char *name, ReportList *reports)
 
CustomDataLayerBKE_id_attribute_find (const ID *id, const char *name, const int type, const eAttrDomain domain)
 
CustomDataLayerBKE_id_attribute_search (ID *id, const char *name, const eCustomDataMask type_mask, const eAttrDomainMask domain_mask)
 
int BKE_id_attributes_length (const ID *id, eAttrDomainMask domain_mask, eCustomDataMask mask)
 
eAttrDomain BKE_id_attribute_domain (const ID *id, const CustomDataLayer *layer)
 
int BKE_id_attribute_data_length (ID *id, CustomDataLayer *layer)
 
bool BKE_id_attribute_required (const ID *id, const char *name)
 
CustomDataLayerBKE_id_attributes_active_get (ID *id)
 
void BKE_id_attributes_active_set (ID *id, CustomDataLayer *active_layer)
 
int * BKE_id_attributes_active_index_p (ID *id)
 
CustomDataBKE_id_attributes_iterator_next_domain (ID *id, CustomDataLayer *layers)
 
CustomDataLayerBKE_id_attribute_from_index (ID *id, int lookup_index, eAttrDomainMask domain_mask, eCustomDataMask layer_mask)
 
static void get_domains_types (eAttrDomain domains[ATTR_DOMAIN_NUM])
 
int BKE_id_attribute_to_index (const ID *id, const CustomDataLayer *layer, eAttrDomainMask domain_mask, eCustomDataMask layer_mask)
 
CustomDataLayerBKE_id_attribute_subset_active_get (const ID *id, int active_flag, eAttrDomainMask domain_mask, eCustomDataMask mask)
 
void BKE_id_attribute_subset_active_set (ID *id, CustomDataLayer *layer, int active_flag, eAttrDomainMask domain_mask, eCustomDataMask mask)
 
CustomDataLayerBKE_id_attributes_active_color_get (const ID *id)
 
void BKE_id_attributes_active_color_set (ID *id, CustomDataLayer *active_layer)
 
CustomDataLayerBKE_id_attributes_render_color_get (const ID *id)
 
void BKE_id_attributes_render_color_set (ID *id, CustomDataLayer *active_layer)
 
CustomDataLayerBKE_id_attributes_color_find (const ID *id, const char *name)
 
void BKE_id_attribute_copy_domains_temp (short id_type, const CustomData *vdata, const CustomData *edata, const CustomData *ldata, const CustomData *pdata, const CustomData *cdata, ID *r_id)
 

Detailed Description

Implementation of generic geometry attributes management. This is built on top of CustomData, which manages individual domains.

Definition in file attribute.cc.

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 ( ID id,
const char *  name,
char *  outname 
)

◆ BKE_id_attribute_copy_domains_temp()

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

◆ BKE_id_attribute_data_length()

int BKE_id_attribute_data_length ( ID id,
CustomDataLayer layer 
)

◆ BKE_id_attribute_domain()

eAttrDomain BKE_id_attribute_domain ( const ID id,
const CustomDataLayer layer 
)

◆ BKE_id_attribute_duplicate()

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

◆ BKE_id_attribute_find()

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

◆ BKE_id_attribute_from_index()

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

◆ BKE_id_attribute_new()

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 ( ID id,
const char *  name,
ReportList reports 
)

◆ BKE_id_attribute_rename()

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

◆ BKE_id_attribute_required()

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

◆ BKE_id_attribute_search()

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

◆ BKE_id_attribute_subset_active_get()

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

◆ BKE_id_attribute_subset_active_set()

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

◆ BKE_id_attribute_to_index()

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

◆ BKE_id_attributes_active_color_get()

CustomDataLayer* BKE_id_attributes_active_color_get ( const ID id)

◆ BKE_id_attributes_active_color_set()

void BKE_id_attributes_active_color_set ( ID id,
CustomDataLayer active_layer 
)

◆ BKE_id_attributes_active_get()

CustomDataLayer* BKE_id_attributes_active_get ( ID id)

◆ BKE_id_attributes_active_index_p()

int* BKE_id_attributes_active_index_p ( ID id)

◆ BKE_id_attributes_active_set()

void BKE_id_attributes_active_set ( ID id,
CustomDataLayer active_layer 
)

◆ BKE_id_attributes_color_find()

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

◆ BKE_id_attributes_iterator_next_domain()

CustomData* BKE_id_attributes_iterator_next_domain ( ID id,
CustomDataLayer layers 
)

◆ BKE_id_attributes_length()

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

◆ BKE_id_attributes_render_color_get()

CustomDataLayer* BKE_id_attributes_render_color_get ( const ID id)

◆ BKE_id_attributes_render_color_set()

void BKE_id_attributes_render_color_set ( ID id,
CustomDataLayer active_layer 
)

◆ BKE_id_attributes_supported()

bool BKE_id_attributes_supported ( const ID id)

Definition at line 126 of file attribute.cc.

References ATTR_DOMAIN_NUM, and get_domains().

◆ get_domains()

static void get_domains ( const ID id,
DomainInfo  info[ATTR_DOMAIN_NUM] 
)
static

◆ get_domains_types()

static void get_domains_types ( eAttrDomain  domains[ATTR_DOMAIN_NUM])
static

Get list of domain types but with ATTR_DOMAIN_FACE and ATTR_DOMAIN_CORNER swapped.

Definition at line 587 of file attribute.cc.

References ATTR_DOMAIN_CORNER, ATTR_DOMAIN_FACE, ATTR_DOMAIN_NUM, and SWAP.

Referenced by BKE_id_attribute_subset_active_get(), BKE_id_attribute_subset_active_set(), and BKE_id_attribute_to_index().

◆ unique_name_cb()

static bool unique_name_cb ( void arg,
const char *  name 
)
static