Blender  V2.93
Classes | Macros | Typedefs | Functions | Variables
customdata.c File Reference
#include "MEM_guardedalloc.h"
#include "DNA_ID.h"
#include "DNA_customdata_types.h"
#include "DNA_hair_types.h"
#include "DNA_meshdata_types.h"
#include "BLI_bitmap.h"
#include "BLI_endian_switch.h"
#include "BLI_math.h"
#include "BLI_math_color_blend.h"
#include "BLI_mempool.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
#include "BLI_string_utils.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_customdata.h"
#include "BKE_customdata_file.h"
#include "BKE_deform.h"
#include "BKE_main.h"
#include "BKE_mesh_mapping.h"
#include "BKE_mesh_remap.h"
#include "BKE_multires.h"
#include "BKE_subsurf.h"
#include "BLO_read_write.h"
#include "bmesh.h"
#include "CLG_log.h"
#include "data_transfer_intern.h"

Go to the source code of this file.

Classes

struct  LayerTypeInfo
 

Macros

#define DNA_DEPRECATED_ALLOW
 
#define CUSTOMDATA_GROW   5
 
#define SOURCE_BUF_SIZE   100
 
#define LAYER_CMP(l_a, t_a, l_b, t_b)
 
#define COPY_BIT_FLAG(_type, _dst, _src, _f)
 

Typedefs

typedef struct LayerTypeInfo LayerTypeInfo
 

Functions

 BLI_STATIC_ASSERT (ARRAY_SIZE(((CustomData *) NULL) ->typemap)==CD_NUMTYPES, "size mismatch")
 
void CustomData_MeshMasks_update (CustomData_MeshMasks *mask_dst, const CustomData_MeshMasks *mask_src)
 
bool CustomData_MeshMasks_are_matching (const CustomData_MeshMasks *mask_ref, const CustomData_MeshMasks *mask_required)
 
static void layerCopy_mdeformvert (const void *source, void *dest, int count)
 
static void layerFree_mdeformvert (void *data, int count, int size)
 
static void layerCopy_bmesh_elem_py_ptr (const void *UNUSED(source), void *dest, int count)
 
void bpy_bm_generic_invalidate (struct BPy_BMGeneric *UNUSED(self))
 
static void layerFree_bmesh_elem_py_ptr (void *data, int count, int size)
 
static void layerInterp_mdeformvert (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static void layerInterp_normal (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static bool layerValidate_normal (void *data, const uint totitems, const bool do_fixes)
 
static void layerCopyValue_normal (const void *source, void *dest, const int mixmode, const float mixfactor)
 
static void layerCopy_tface (const void *source, void *dest, int count)
 
static void layerInterp_tface (const void **sources, const float *weights, const float *sub_weights, int count, void *dest)
 
static void layerSwap_tface (void *data, const int *corner_indices)
 
static void layerDefault_tface (void *data, int count)
 
static int layerMaxNum_tface (void)
 
static void layerCopy_propFloat (const void *source, void *dest, int count)
 
static void layerInterp_propFloat (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static bool layerValidate_propFloat (void *data, const uint totitems, const bool do_fixes)
 
static void layerCopy_propInt (const void *source, void *dest, int count)
 
static void layerCopy_propString (const void *source, void *dest, int count)
 
static void layerCopy_origspace_face (const void *source, void *dest, int count)
 
static void layerInterp_origspace_face (const void **sources, const float *weights, const float *sub_weights, int count, void *dest)
 
static void layerSwap_origspace_face (void *data, const int *corner_indices)
 
static void layerDefault_origspace_face (void *data, int count)
 
static void layerSwap_mdisps (void *data, const int *ci)
 
static void layerCopy_mdisps (const void *source, void *dest, int count)
 
static void layerFree_mdisps (void *data, int count, int UNUSED(size))
 
static bool layerRead_mdisps (CDataFile *cdf, void *data, int count)
 
static bool layerWrite_mdisps (CDataFile *cdf, const void *data, int count)
 
static size_t layerFilesize_mdisps (CDataFile *UNUSED(cdf), const void *data, int count)
 
static void layerInterp_paint_mask (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static void layerCopy_grid_paint_mask (const void *source, void *dest, int count)
 
static void layerFree_grid_paint_mask (void *data, int count, int UNUSED(size))
 
static void layerCopyValue_mloopcol (const void *source, void *dest, const int mixmode, const float mixfactor)
 
static bool layerEqual_mloopcol (const void *data1, const void *data2)
 
static void layerMultiply_mloopcol (void *data, float fac)
 
static void layerAdd_mloopcol (void *data1, const void *data2)
 
static void layerDoMinMax_mloopcol (const void *data, void *vmin, void *vmax)
 
static void layerInitMinMax_mloopcol (void *vmin, void *vmax)
 
static void layerDefault_mloopcol (void *data, int count)
 
static void layerInterp_mloopcol (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static int layerMaxNum_mloopcol (void)
 
static void layerCopyValue_mloopuv (const void *source, void *dest, const int mixmode, const float mixfactor)
 
static bool layerEqual_mloopuv (const void *data1, const void *data2)
 
static void layerMultiply_mloopuv (void *data, float fac)
 
static void layerInitMinMax_mloopuv (void *vmin, void *vmax)
 
static void layerDoMinMax_mloopuv (const void *data, void *vmin, void *vmax)
 
static void layerAdd_mloopuv (void *data1, const void *data2)
 
static void layerInterp_mloopuv (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static bool layerValidate_mloopuv (void *data, const uint totitems, const bool do_fixes)
 
static void layerCopyValue_mloop_origspace (const void *source, void *dest, const int UNUSED(mixmode), const float UNUSED(mixfactor))
 
static bool layerEqual_mloop_origspace (const void *data1, const void *data2)
 
static void layerMultiply_mloop_origspace (void *data, float fac)
 
static void layerInitMinMax_mloop_origspace (void *vmin, void *vmax)
 
static void layerDoMinMax_mloop_origspace (const void *data, void *vmin, void *vmax)
 
static void layerAdd_mloop_origspace (void *data1, const void *data2)
 
static void layerInterp_mloop_origspace (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static void layerInterp_mcol (const void **sources, const float *weights, const float *sub_weights, int count, void *dest)
 
static void layerSwap_mcol (void *data, const int *corner_indices)
 
static void layerDefault_mcol (void *data, int count)
 
static void layerDefault_origindex (void *data, int count)
 
static void layerInterp_bweight (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static void layerInterp_shapekey (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static void layerDefault_mvert_skin (void *data, int count)
 
static void layerCopy_mvert_skin (const void *source, void *dest, int count)
 
static void layerInterp_mvert_skin (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static void layerSwap_flnor (void *data, const int *corner_indices)
 
static void layerDefault_fmap (void *data, int count)
 
static void layerCopyValue_propcol (const void *source, void *dest, const int mixmode, const float mixfactor)
 
static bool layerEqual_propcol (const void *data1, const void *data2)
 
static void layerMultiply_propcol (void *data, float fac)
 
static void layerAdd_propcol (void *data1, const void *data2)
 
static void layerDoMinMax_propcol (const void *data, void *vmin, void *vmax)
 
static void layerInitMinMax_propcol (void *vmin, void *vmax)
 
static void layerDefault_propcol (void *data, int count)
 
static void layerInterp_propcol (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static int layerMaxNum_propcol (void)
 
static void layerInterp_propfloat3 (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static void layerMultiply_propfloat3 (void *data, float fac)
 
static void layerAdd_propfloat3 (void *data1, const void *data2)
 
static bool layerValidate_propfloat3 (void *data, const uint totitems, const bool do_fixes)
 
static void layerInterp_propfloat2 (const void **sources, const float *weights, const float *UNUSED(sub_weights), int count, void *dest)
 
static void layerMultiply_propfloat2 (void *data, float fac)
 
static void layerAdd_propfloat2 (void *data1, const void *data2)
 
static bool layerValidate_propfloat2 (void *data, const uint totitems, const bool do_fixes)
 
static const LayerTypeInfolayerType_getInfo (int type)
 
static const char * layerType_getName (int type)
 
void customData_mask_layers__print (const CustomData_MeshMasks *mask)
 
static void customData_update_offsets (CustomData *data)
 
static CustomDataLayercustomData_add_layer__internal (CustomData *data, int type, eCDAllocType alloctype, void *layerdata, int totelem, const char *name)
 
void CustomData_update_typemap (CustomData *data)
 
static bool customdata_typemap_is_valid (const CustomData *data)
 
bool CustomData_merge (const struct CustomData *source, struct CustomData *dest, CustomDataMask mask, eCDAllocType alloctype, int totelem)
 
void CustomData_realloc (CustomData *data, int totelem)
 
void CustomData_copy (const struct CustomData *source, struct CustomData *dest, CustomDataMask mask, eCDAllocType alloctype, int totelem)
 
static void customData_free_layer__internal (CustomDataLayer *layer, int totelem)
 
static void CustomData_external_free (CustomData *data)
 
void CustomData_reset (CustomData *data)
 
void CustomData_free (CustomData *data, int totelem)
 
void CustomData_free_typemask (struct CustomData *data, int totelem, CustomDataMask mask)
 
static int CustomData_get_layer_index__notypemap (const CustomData *data, int type)
 
int CustomData_get_layer_index (const CustomData *data, int type)
 
int CustomData_get_layer_index_n (const struct CustomData *data, int type, int n)
 
int CustomData_get_named_layer_index (const CustomData *data, int type, const char *name)
 
int CustomData_get_active_layer_index (const CustomData *data, int type)
 
int CustomData_get_render_layer_index (const CustomData *data, int type)
 
int CustomData_get_clone_layer_index (const CustomData *data, int type)
 
int CustomData_get_stencil_layer_index (const CustomData *data, int type)
 
int CustomData_get_named_layer (const struct CustomData *data, int type, const char *name)
 
int CustomData_get_active_layer (const CustomData *data, int type)
 
int CustomData_get_render_layer (const CustomData *data, int type)
 
int CustomData_get_clone_layer (const CustomData *data, int type)
 
int CustomData_get_stencil_layer (const CustomData *data, int type)
 
void CustomData_set_layer_active (CustomData *data, int type, int n)
 
void CustomData_set_layer_render (CustomData *data, int type, int n)
 
void CustomData_set_layer_clone (CustomData *data, int type, int n)
 
void CustomData_set_layer_stencil (CustomData *data, int type, int n)
 
void CustomData_set_layer_active_index (CustomData *data, int type, int n)
 
void CustomData_set_layer_render_index (CustomData *data, int type, int n)
 
void CustomData_set_layer_clone_index (CustomData *data, int type, int n)
 
void CustomData_set_layer_stencil_index (CustomData *data, int type, int n)
 
void CustomData_set_layer_flag (struct CustomData *data, int type, int flag)
 
void CustomData_clear_layer_flag (struct CustomData *data, int type, int flag)
 
static bool customData_resize (CustomData *data, int amount)
 
void * CustomData_add_layer (CustomData *data, int type, eCDAllocType alloctype, void *layerdata, int totelem)
 
void * CustomData_add_layer_named (CustomData *data, int type, eCDAllocType alloctype, void *layerdata, int totelem, const char *name)
 
bool CustomData_free_layer (CustomData *data, int type, int totelem, int index)
 
bool CustomData_free_layer_active (CustomData *data, int type, int totelem)
 
void CustomData_free_layers (CustomData *data, int type, int totelem)
 
bool CustomData_has_layer (const CustomData *data, int type)
 
int CustomData_number_of_layers (const CustomData *data, int type)
 
int CustomData_number_of_layers_typemask (const CustomData *data, CustomDataMask mask)
 
static void * customData_duplicate_referenced_layer_index (CustomData *data, const int layer_index, const int totelem)
 
void * CustomData_duplicate_referenced_layer (CustomData *data, const int type, const int totelem)
 
void * CustomData_duplicate_referenced_layer_n (CustomData *data, const int type, const int n, const int totelem)
 
void * CustomData_duplicate_referenced_layer_named (CustomData *data, const int type, const char *name, const int totelem)
 
void CustomData_duplicate_referenced_layers (CustomData *data, int totelem)
 
bool CustomData_is_referenced_layer (struct CustomData *data, int type)
 
void CustomData_free_temporary (CustomData *data, int totelem)
 
void CustomData_set_only_copy (const struct CustomData *data, CustomDataMask mask)
 
void CustomData_copy_elements (int type, void *src_data_ofs, void *dst_data_ofs, int count)
 
void CustomData_copy_data_layer (const CustomData *source, CustomData *dest, int src_layer_index, int dst_layer_index, int src_index, int dst_index, int count)
 
void CustomData_copy_data_named (const CustomData *source, CustomData *dest, int source_index, int dest_index, int count)
 
void CustomData_copy_data (const CustomData *source, CustomData *dest, int source_index, int dest_index, int count)
 
void CustomData_copy_layer_type_data (const CustomData *source, CustomData *destination, int type, int source_index, int destination_index, int count)
 
void CustomData_free_elem (CustomData *data, int index, int count)
 
void CustomData_interp (const CustomData *source, CustomData *dest, const int *src_indices, const float *weights, const float *sub_weights, int count, int dest_index)
 
void CustomData_swap_corners (struct CustomData *data, int index, const int *corner_indices)
 
void CustomData_swap (struct CustomData *data, const int index_a, const int index_b)
 
void * CustomData_get (const CustomData *data, int index, int type)
 
void * CustomData_get_n (const CustomData *data, int type, int index, int n)
 
void * CustomData_get_layer (const CustomData *data, int type)
 
void * CustomData_get_layer_n (const CustomData *data, int type, int n)
 
void * CustomData_get_layer_named (const struct CustomData *data, int type, const char *name)
 
int CustomData_get_offset (const CustomData *data, int type)
 
int CustomData_get_n_offset (const CustomData *data, int type, int n)
 
bool CustomData_set_layer_name (const CustomData *data, int type, int n, const char *name)
 
const char * CustomData_get_layer_name (const CustomData *data, int type, int n)
 
void * CustomData_set_layer (const CustomData *data, int type, void *ptr)
 
void * CustomData_set_layer_n (const struct CustomData *data, int type, int n, void *ptr)
 
void CustomData_set (const CustomData *data, int index, int type, const void *source)
 
void CustomData_to_bmeshpoly (CustomData *fdata, CustomData *ldata, int totloop)
 
void CustomData_from_bmeshpoly (CustomData *fdata, CustomData *ldata, int total)
 
bool CustomData_from_bmeshpoly_test (CustomData *fdata, CustomData *ldata, bool fallback)
 
void CustomData_bmesh_update_active_layers (CustomData *fdata, CustomData *ldata)
 
void CustomData_bmesh_do_versions_update_active_layers (CustomData *fdata, CustomData *ldata)
 
void CustomData_bmesh_init_pool (CustomData *data, int totelem, const char htype)
 
bool CustomData_bmesh_merge (const CustomData *source, CustomData *dest, CustomDataMask mask, eCDAllocType alloctype, BMesh *bm, const char htype)
 
void CustomData_bmesh_free_block (CustomData *data, void **block)
 
void CustomData_bmesh_free_block_data (CustomData *data, void *block)
 
static void CustomData_bmesh_alloc_block (CustomData *data, void **block)
 
void CustomData_bmesh_free_block_data_exclude_by_type (CustomData *data, void *block, const CustomDataMask mask_exclude)
 
static void CustomData_bmesh_set_default_n (CustomData *data, void **block, int n)
 
void CustomData_bmesh_set_default (CustomData *data, void **block)
 
void CustomData_bmesh_copy_data_exclude_by_type (const CustomData *source, CustomData *dest, void *src_block, void **dest_block, const CustomDataMask mask_exclude)
 
void CustomData_bmesh_copy_data (const CustomData *source, CustomData *dest, void *src_block, void **dest_block)
 
void * CustomData_bmesh_get (const CustomData *data, void *block, int type)
 
void * CustomData_bmesh_get_n (const CustomData *data, void *block, int type, int n)
 
void * CustomData_bmesh_get_layer_n (const CustomData *data, void *block, int n)
 
bool CustomData_layer_has_math (const struct CustomData *data, int layer_n)
 
bool CustomData_layer_has_interp (const struct CustomData *data, int layer_n)
 
bool CustomData_has_math (const struct CustomData *data)
 
bool CustomData_bmesh_has_free (const struct CustomData *data)
 
bool CustomData_has_interp (const struct CustomData *data)
 
bool CustomData_has_referenced (const struct CustomData *data)
 
void CustomData_data_copy_value (int type, const void *source, void *dest)
 
void CustomData_data_mix_value (int type, const void *source, void *dest, const int mixmode, const float mixfactor)
 
bool CustomData_data_equals (int type, const void *data1, const void *data2)
 
void CustomData_data_initminmax (int type, void *min, void *max)
 
void CustomData_data_dominmax (int type, const void *data, void *min, void *max)
 
void CustomData_data_multiply (int type, void *data, float fac)
 
void CustomData_data_add (int type, void *data1, const void *data2)
 
void CustomData_bmesh_set (const CustomData *data, void *block, int type, const void *source)
 
void CustomData_bmesh_set_n (CustomData *data, void *block, int type, int n, const void *source)
 
void CustomData_bmesh_set_layer_n (CustomData *data, void *block, int n, const void *source)
 
void CustomData_bmesh_interp_n (CustomData *data, const void **src_blocks_ofs, const float *weights, const float *sub_weights, int count, void *dst_block_ofs, int n)
 
void CustomData_bmesh_interp (CustomData *data, const void **src_blocks, const float *weights, const float *sub_weights, int count, void *dst_block)
 
void CustomData_to_bmesh_block (const CustomData *source, CustomData *dest, int src_index, void **dest_block, bool use_default_init)
 
void CustomData_from_bmesh_block (const CustomData *source, CustomData *dest, void *src_block, int dest_index)
 
void CustomData_file_write_info (int type, const char **r_struct_name, int *r_struct_num)
 
void CustomData_blend_write_prepare (CustomData *data, CustomDataLayer **r_write_layers, CustomDataLayer *write_layers_buff, size_t write_layers_size)
 
int CustomData_sizeof (int type)
 
const char * CustomData_layertype_name (int type)
 
bool CustomData_layertype_is_singleton (int type)
 
bool CustomData_layertype_is_dynamic (int type)
 
int CustomData_layertype_layers_max (const int type)
 
static bool cd_layer_find_dupe (CustomData *data, const char *name, int type, int index)
 
static bool customdata_unique_check (void *arg, const char *name)
 
void CustomData_set_layer_unique_name (CustomData *data, int index)
 
void CustomData_validate_layer_name (const CustomData *data, int type, const char *name, char *outname)
 
bool CustomData_verify_versions (struct CustomData *data, int index)
 
bool CustomData_layer_validate (CustomDataLayer *layer, const uint totitems, const bool do_fixes)
 
void CustomData_layers__print (CustomData *data)
 
static void customdata_external_filename (char filename[FILE_MAX], ID *id, CustomDataExternal *external)
 
void CustomData_external_reload (CustomData *data, ID *UNUSED(id), CustomDataMask mask, int totelem)
 
void CustomData_external_read (CustomData *data, ID *id, CustomDataMask mask, int totelem)
 
void CustomData_external_write (CustomData *data, ID *id, CustomDataMask mask, int totelem, int free)
 
void CustomData_external_add (CustomData *data, ID *UNUSED(id), int type, int UNUSED(totelem), const char *filename)
 
void CustomData_external_remove (CustomData *data, ID *id, int type, int totelem)
 
bool CustomData_external_test (CustomData *data, int type)
 
static void copy_bit_flag (void *dst, const void *src, const size_t data_size, const uint64_t flag)
 
static bool check_bit_flag (const void *data, const size_t data_size, const uint64_t flag)
 
static void customdata_data_transfer_interp_generic (const CustomDataTransferLayerMap *laymap, void *data_dst, const void **sources, const float *weights, const int count, const float mix_factor)
 
void customdata_data_transfer_interp_normal_normals (const CustomDataTransferLayerMap *laymap, void *data_dst, const void **sources, const float *weights, const int count, const float mix_factor)
 
void CustomData_data_transfer (const MeshPairRemap *me_remap, const CustomDataTransferLayerMap *laymap)
 
static void write_mdisps (BlendWriter *writer, int count, MDisps *mdlist, int external)
 
static void write_grid_paint_mask (BlendWriter *writer, int count, GridPaintMask *grid_paint_mask)
 
void CustomData_blend_write (BlendWriter *writer, CustomData *data, CustomDataLayer *layers, int count, CustomDataMask cddata_mask, ID *id)
 
static void blend_read_mdisps (BlendDataReader *reader, int count, MDisps *mdisps, int external)
 
static void blend_read_paint_mask (BlendDataReader *reader, int count, GridPaintMask *grid_paint_mask)
 
void CustomData_blend_read (BlendDataReader *reader, CustomData *data, int count)
 

Variables

static CLG_LogRef LOG = {"bke.customdata"}
 
static const LayerTypeInfo LAYERTYPEINFO [CD_NUMTYPES]
 
static const char * LAYERTYPENAMES [CD_NUMTYPES]
 
const CustomData_MeshMasks CD_MASK_BAREMESH
 
const CustomData_MeshMasks CD_MASK_BAREMESH_ORIGINDEX
 
const CustomData_MeshMasks CD_MASK_MESH
 
const CustomData_MeshMasks CD_MASK_EDITMESH
 
const CustomData_MeshMasks CD_MASK_DERIVEDMESH
 
const CustomData_MeshMasks CD_MASK_BMESH
 
const CustomData_MeshMasks CD_MASK_FACECORNERS
 
const CustomData_MeshMasks CD_MASK_EVERYTHING
 

Macro Definition Documentation

◆ COPY_BIT_FLAG

#define COPY_BIT_FLAG (   _type,
  _dst,
  _src,
  _f 
)
Value:
{ \
const _type _val = *((_type *)(_src)) & ((_type)(_f)); \
*((_type *)(_dst)) &= ~((_type)(_f)); \
*((_type *)(_dst)) |= _val; \
} \
(void)0

◆ CUSTOMDATA_GROW

#define CUSTOMDATA_GROW   5

Definition at line 68 of file customdata.c.

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 30 of file customdata.c.

◆ LAYER_CMP

#define LAYER_CMP (   l_a,
  t_a,
  l_b,
  t_b 
)
Value:
((a_num += CustomData_number_of_layers(l_a, t_a)) == \
(b_num += CustomData_number_of_layers(l_b, t_b)))
ATTR_WARN_UNUSED_RESULT const BMLoop * l_b
int CustomData_number_of_layers(const CustomData *data, int type)
Definition: customdata.c:2729

◆ SOURCE_BUF_SIZE

#define SOURCE_BUF_SIZE   100

Definition at line 3019 of file customdata.c.

Typedef Documentation

◆ LayerTypeInfo

typedef struct LayerTypeInfo LayerTypeInfo

Function Documentation

◆ blend_read_mdisps()

static void blend_read_mdisps ( BlendDataReader reader,
int  count,
MDisps mdisps,
int  external 
)
static

◆ blend_read_paint_mask()

static void blend_read_paint_mask ( BlendDataReader reader,
int  count,
GridPaintMask grid_paint_mask 
)
static

Definition at line 5166 of file customdata.c.

References BLO_read_data_address, count, and GridPaintMask::data.

Referenced by CustomData_blend_read().

◆ BLI_STATIC_ASSERT()

BLI_STATIC_ASSERT ( ARRAY_SIZE(((CustomData *) NULL) ->typemap = =CD_NUMTYPES,
"size mismatch"   
)

◆ bpy_bm_generic_invalidate()

void bpy_bm_generic_invalidate ( struct BPy_BMGeneric UNUSEDself)

Definition at line 224 of file customdata.c.

Referenced by BM_mesh_free(), and layerFree_bmesh_elem_py_ptr().

◆ cd_layer_find_dupe()

static bool cd_layer_find_dupe ( CustomData data,
const char *  name,
int  type,
int  index 
)
static

◆ check_bit_flag()

static bool check_bit_flag ( const void *  data,
const size_t  data_size,
const uint64_t  flag 
)
static

Definition at line 4791 of file customdata.c.

References data.

Referenced by customdata_data_transfer_interp_generic().

◆ copy_bit_flag()

static void copy_bit_flag ( void *  dst,
const void *  src,
const size_t  data_size,
const uint64_t  flag 
)
static

Definition at line 4760 of file customdata.c.

References COPY_BIT_FLAG.

Referenced by customdata_data_transfer_interp_generic().

◆ CustomData_add_layer()

void* CustomData_add_layer ( CustomData data,
int  type,
eCDAllocType  alloctype,
void *  layerdata,
int  totelem 
)

Definition at line 2620 of file customdata.c.

References customData_add_layer__internal(), CustomData_update_typemap(), data, CustomDataLayer::data, LayerTypeInfo::defaultname, layerType_getInfo(), NULL, and type.

Referenced by add_orco_mesh(), BKE_mesh_calc_edges(), BKE_mesh_calc_edges_legacy(), BKE_mesh_calc_edges_tessface(), BKE_mesh_calc_normals_split_ex(), BKE_mesh_convert_mfaces_to_mpolys_ex(), BKE_mesh_ensure_facemap_customdata(), BKE_mesh_ensure_normals_for_display(), BKE_mesh_ensure_skin_customdata(), BKE_mesh_from_metaball(), BKE_mesh_from_nurbs_displist(), BKE_mesh_from_pointcloud(), BKE_mesh_nomain_to_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), BKE_mesh_remap_calc_polys_from_mesh(), BKE_mesh_remesh_reproject_paint_mask(), BKE_mesh_tessface_calc_ex(), BKE_object_defgroup_data_create(), BKE_remesh_reproject_sculpt_face_sets(), BKE_sculpt_color_layer_create_if_needed(), BKE_sculpt_face_sets_ensure_from_base_mesh_visibility(), BKE_sculpt_mask_layers_ensure(), BM_data_layer_add(), BM_mesh_bm_from_me(), BM_mesh_bm_to_me(), BM_mesh_bm_to_me_for_eval(), CDDM_copy(), copy_ccg_data(), customdata_version_242(), data_transfer_dtdata_type_postprocess(), data_transfer_dtdata_type_preprocess(), data_transfer_layersmapping_cdlayers(), data_transfer_layersmapping_cdlayers_multisrc_to_dst(), data_transfer_layersmapping_vgroups(), data_transfer_layersmapping_vgroups_multisrc_to_dst(), deformVerts(), DM_add_edge_layer(), DM_add_loop_layer(), DM_add_poly_layer(), DM_add_tessface_layer(), DM_add_vert_layer(), DM_DupPolys(), dm_getEdgeArray(), dm_getLoopArray(), dm_getPolyArray(), dm_getTessFaceArray(), dm_getVertArray(), dynamicPaint_Modifier_apply(), ED_mesh_join_objects_exec(), ED_object_facemap_face_add(), ED_object_modifier_convert(), editbmesh_calc_modifier_final_normals(), editbmesh_calc_modifiers(), Freestyle::BlenderStrokeRenderer::GenerateStrokeMesh(), hair_create_input_mesh(), hair_init_data(), mesh_add_edges(), mesh_add_loops(), mesh_add_polys(), mesh_add_verts(), mesh_calc_modifier_final_normals(), mesh_calc_modifiers(), mesh_customdata_custom_splitnormals_add_exec(), mesh_ensure_cdlayers_primary(), mesh_set_custom_normals(), MOD_deform_mesh_eval_get(), MOD_solidify_extrude_modifyMesh(), modifier_skin_armature_create(), modifyMesh(), multires_create_grids_in_unsubdivided_base_mesh(), multires_ensure_external_read(), multires_subdivide_create_tangent_displacement_linear_grids(), multiresModifier_disp_run(), multiresModifier_subdivide_to_level(), normalEditModifier_do(), psys_thread_context_init_distribute(), SCULPT_dynamic_topology_disable_ex(), skin_set_orig_indices(), and blender::bke::BuiltinCustomDataLayerProvider::try_create().

◆ customData_add_layer__internal()

static CustomDataLayer * customData_add_layer__internal ( CustomData data,
int  type,
eCDAllocType  alloctype,
void *  layerdata,
int  totelem,
const char *  name 
)
static

◆ CustomData_add_layer_named()

void* CustomData_add_layer_named ( CustomData data,
int  type,
eCDAllocType  alloctype,
void *  layerdata,
int  totelem,
const char *  name 
)

◆ CustomData_blend_read()

void CustomData_blend_read ( BlendDataReader reader,
CustomData data,
int  count 
)

◆ CustomData_blend_write()

void CustomData_blend_write ( BlendWriter writer,
CustomData data,
CustomDataLayer layers,
int  count,
CustomDataMask  cddata_mask,
ID id 
)

◆ CustomData_blend_write_prepare()

void CustomData_blend_write_prepare ( CustomData data,
CustomDataLayer **  r_write_layers,
CustomDataLayer write_layers_buff,
size_t  write_layers_size 
)

Prepare given custom data for file writing.

Parameters
datathe customdata to tweak for .blend file writing (modified in place).
r_write_layerscontains a reduced set of layers to be written to file, use it with writestruct_at_address() (caller must free it if != write_layers_buff).
write_layers_buffan optional buffer for r_write_layers (to avoid allocating it).
write_layers_sizethe size of pre-allocated write_layer_buff.
Warning
After this func has ran, given custom data is no more valid from Blender PoV (its totlayer is invalid). This func shall always be called with localized data (as it is in write_meshes()).
Note
data->typemap is not updated here, since it is always rebuilt on file read anyway. This means written typemap does not match written layers (as returned by r_write_layers). Trivial to fix is ever needed.

Definition at line 4237 of file customdata.c.

References BLI_assert, CD_FLAG_NOCOPY, CD_TEMP_CHUNK_SIZE, data, CustomDataLayer::flag, MEM_malloc_arrayN, MEM_reallocN, and UNLIKELY.

Referenced by hair_blend_write(), mesh_blend_write(), and pointcloud_blend_write().

◆ CustomData_bmesh_alloc_block()

static void CustomData_bmesh_alloc_block ( CustomData data,
void **  block 
)
static

◆ CustomData_bmesh_copy_data()

void CustomData_bmesh_copy_data ( const CustomData source,
CustomData dest,
void *  src_block,
void **  dest_block 
)

Definition at line 3777 of file customdata.c.

References CustomData_bmesh_copy_data_exclude_by_type().

Referenced by CustomData_bmesh_merge().

◆ CustomData_bmesh_copy_data_exclude_by_type()

void CustomData_bmesh_copy_data_exclude_by_type ( const CustomData source,
CustomData dest,
void *  src_block,
void **  dest_block,
const CustomDataMask  mask_exclude 
)

◆ CustomData_bmesh_do_versions_update_active_layers()

void CustomData_bmesh_do_versions_update_active_layers ( CustomData fdata,
CustomData ldata 
)

◆ CustomData_bmesh_free_block()

void CustomData_bmesh_free_block ( CustomData data,
void **  block 
)

◆ CustomData_bmesh_free_block_data()

void CustomData_bmesh_free_block_data ( CustomData data,
void *  block 
)

Same as CustomData_bmesh_free_block but zero the memory rather than freeing.

Definition at line 3633 of file customdata.c.

References CD_FLAG_NOFREE, data, LayerTypeInfo::free, layerType_getInfo(), NULL, POINTER_OFFSET, and LayerTypeInfo::size.

Referenced by bm_data_interp_from_elem(), bm_loop_create(), and bmo_inset_region_exec().

◆ CustomData_bmesh_free_block_data_exclude_by_type()

void CustomData_bmesh_free_block_data_exclude_by_type ( CustomData data,
void *  block,
const CustomDataMask  mask_exclude 
)

◆ CustomData_bmesh_get()

void* CustomData_bmesh_get ( const CustomData data,
void *  block,
int  type 
)

Definition at line 3788 of file customdata.c.

References CustomData_get_active_layer_index(), data, NULL, POINTER_OFFSET, and type.

Referenced by CustomData_bmesh_set().

◆ CustomData_bmesh_get_layer_n()

void* CustomData_bmesh_get_layer_n ( const CustomData data,
void *  block,
int  n 
)

Definition at line 3811 of file customdata.c.

References data, NULL, and POINTER_OFFSET.

Referenced by CustomData_bmesh_set_layer_n().

◆ CustomData_bmesh_get_n()

void* CustomData_bmesh_get_n ( const CustomData data,
void *  block,
int  type,
int  n 
)

Definition at line 3799 of file customdata.c.

References CustomData_get_layer_index(), data, NULL, POINTER_OFFSET, and type.

Referenced by CustomData_bmesh_set_n().

◆ CustomData_bmesh_has_free()

bool CustomData_bmesh_has_free ( const struct CustomData data)

Definition at line 3856 of file customdata.c.

References CD_FLAG_NOFREE, data, LayerTypeInfo::free, and layerType_getInfo().

Referenced by BM_mesh_data_free().

◆ CustomData_bmesh_init_pool()

void CustomData_bmesh_init_pool ( CustomData data,
int  totelem,
const char  htype 
)

◆ CustomData_bmesh_interp()

void CustomData_bmesh_interp ( CustomData data,
const void **  src_blocks,
const float weights,
const float sub_weights,
int  count,
void *  dst_block 
)

◆ CustomData_bmesh_interp_n()

void CustomData_bmesh_interp_n ( CustomData data,
const void **  src_blocks_ofs,
const float weights,
const float sub_weights,
int  count,
void *  dst_block_ofs,
int  n 
)
Note
src_blocks_ofs & dst_block_ofs must be pointers to the data, offset by layer->offset already.

Definition at line 4031 of file customdata.c.

References BLI_assert, count, data, LayerTypeInfo::interp, layerType_getInfo(), NULL, and CustomDataLayer::type.

Referenced by bm_edge_collapse_loop_customdata(), bm_vert_loop_groups_data_layer_merge__single(), bm_vert_loop_groups_data_layer_merge_weights__single(), and CustomData_bmesh_interp().

◆ CustomData_bmesh_merge()

bool CustomData_bmesh_merge ( const CustomData source,
CustomData dest,
CustomDataMask  mask,
eCDAllocType  alloctype,
BMesh bm,
const char  htype 
)

◆ CustomData_bmesh_set()

void CustomData_bmesh_set ( const CustomData data,
void *  block,
int  type,
const void *  source 
)

◆ CustomData_bmesh_set_default()

void CustomData_bmesh_set_default ( CustomData data,
void **  block 
)

◆ CustomData_bmesh_set_default_n()

static void CustomData_bmesh_set_default_n ( CustomData data,
void **  block,
int  n 
)
static

◆ CustomData_bmesh_set_layer_n()

void CustomData_bmesh_set_layer_n ( CustomData data,
void *  block,
int  n,
const void *  source 
)

◆ CustomData_bmesh_set_n()

void CustomData_bmesh_set_n ( CustomData data,
void *  block,
int  type,
int  n,
const void *  source 
)

◆ CustomData_bmesh_update_active_layers()

void CustomData_bmesh_update_active_layers ( CustomData fdata,
CustomData ldata 
)

◆ CustomData_clear_layer_flag()

void CustomData_clear_layer_flag ( struct CustomData data,
int  type,
int  flag 
)

Definition at line 2484 of file customdata.c.

References data, and type.

Referenced by modifyMesh(), and triangulate_mesh().

◆ CustomData_copy()

void CustomData_copy ( const struct CustomData source,
struct CustomData dest,
CustomDataMask  mask,
eCDAllocType  alloctype,
int  totelem 
)

◆ CustomData_copy_data()

void CustomData_copy_data ( const CustomData source,
CustomData dest,
int  source_index,
int  dest_index,
int  count 
)

◆ CustomData_copy_data_layer()

void CustomData_copy_data_layer ( const CustomData source,
CustomData dest,
int  src_layer_index,
int  dst_layer_index,
int  src_index,
int  dst_index,
int  count 
)

◆ CustomData_copy_data_named()

void CustomData_copy_data_named ( const CustomData source,
CustomData dest,
int  source_index,
int  dest_index,
int  count 
)

◆ CustomData_copy_elements()

void CustomData_copy_elements ( int  type,
void *  src_data_ofs,
void *  dst_data_ofs,
int  count 
)

◆ CustomData_copy_layer_type_data()

void CustomData_copy_layer_type_data ( const CustomData source,
CustomData destination,
int  type,
int  source_index,
int  destination_index,
int  count 
)

Definition at line 2980 of file customdata.c.

References count, CustomData_copy_data_layer(), CustomData_get_layer_index(), and type.

◆ CustomData_data_add()

void CustomData_data_add ( int  type,
void *  data1,
const void *  data2 
)

◆ CustomData_data_copy_value()

void CustomData_data_copy_value ( int  type,
const void *  source,
void *  dest 
)

◆ CustomData_data_dominmax()

void CustomData_data_dominmax ( int  type,
const void *  data,
void *  min,
void *  max 
)

◆ CustomData_data_equals()

bool CustomData_data_equals ( int  type,
const void *  data1,
const void *  data2 
)

◆ CustomData_data_initminmax()

void CustomData_data_initminmax ( int  type,
void *  min,
void *  max 
)

◆ CustomData_data_mix_value()

void CustomData_data_mix_value ( int  type,
const void *  source,
void *  dest,
const int  mixmode,
const float  mixfactor 
)

◆ CustomData_data_multiply()

void CustomData_data_multiply ( int  type,
void *  data,
float  fac 
)

◆ CustomData_data_transfer()

void CustomData_data_transfer ( const MeshPairRemap me_remap,
const CustomDataTransferLayerMap laymap 
)

◆ customdata_data_transfer_interp_generic()

static void customdata_data_transfer_interp_generic ( const CustomDataTransferLayerMap laymap,
void *  data_dst,
const void **  sources,
const float weights,
const int  count,
const float  mix_factor 
)
static

◆ customdata_data_transfer_interp_normal_normals()

void customdata_data_transfer_interp_normal_normals ( const CustomDataTransferLayerMap laymap,
void *  data_dst,
const void **  sources,
const float weights,
const int  count,
const float  mix_factor 
)

◆ CustomData_duplicate_referenced_layer()

void* CustomData_duplicate_referenced_layer ( CustomData data,
const int  type,
const int  totelem 
)

◆ customData_duplicate_referenced_layer_index()

static void* customData_duplicate_referenced_layer_index ( CustomData data,
const int  layer_index,
const int  totelem 
)
static

◆ CustomData_duplicate_referenced_layer_n()

void* CustomData_duplicate_referenced_layer_n ( CustomData data,
const int  type,
const int  n,
const int  totelem 
)

◆ CustomData_duplicate_referenced_layer_named()

void* CustomData_duplicate_referenced_layer_named ( CustomData data,
const int  type,
const char *  name,
const int  totelem 
)

◆ CustomData_duplicate_referenced_layers()

void CustomData_duplicate_referenced_layers ( CustomData data,
int  totelem 
)

◆ CustomData_external_add()

void CustomData_external_add ( CustomData data,
ID UNUSEDid,
int  type,
int   UNUSEDtotelem,
const char *  filename 
)

◆ customdata_external_filename()

static void customdata_external_filename ( char  filename[FILE_MAX],
ID id,
CustomDataExternal external 
)
static

◆ CustomData_external_free()

static void CustomData_external_free ( CustomData data)
static

Definition at line 2225 of file customdata.c.

References data, MEM_freeN, and NULL.

Referenced by CustomData_free(), and CustomData_free_typemask().

◆ CustomData_external_read()

void CustomData_external_read ( CustomData data,
ID id,
CustomDataMask  mask,
int  totelem 
)

◆ CustomData_external_reload()

void CustomData_external_reload ( CustomData data,
ID UNUSEDid,
CustomDataMask  mask,
int  totelem 
)

◆ CustomData_external_remove()

void CustomData_external_remove ( CustomData data,
ID id,
int  type,
int  totelem 
)

◆ CustomData_external_test()

bool CustomData_external_test ( CustomData data,
int  type 
)

◆ CustomData_external_write()

void CustomData_external_write ( CustomData data,
ID id,
CustomDataMask  mask,
int  totelem,
int  free 
)

◆ CustomData_file_write_info()

void CustomData_file_write_info ( int  type,
const char **  r_struct_name,
int *  r_struct_num 
)

◆ CustomData_free()

void CustomData_free ( struct CustomData data,
int  totelem 
)

◆ CustomData_free_elem()

void CustomData_free_elem ( CustomData data,
int  index,
int  count 
)

◆ CustomData_free_layer()

bool CustomData_free_layer ( CustomData data,
int  type,
int  totelem,
int  index 
)

◆ customData_free_layer__internal()

static void customData_free_layer__internal ( CustomDataLayer layer,
int  totelem 
)
static

◆ CustomData_free_layer_active()

bool CustomData_free_layer_active ( CustomData data,
int  type,
int  totelem 
)

◆ CustomData_free_layers()

void CustomData_free_layers ( CustomData data,
int  type,
int  totelem 
)

◆ CustomData_free_temporary()

void CustomData_free_temporary ( CustomData data,
int  totelem 
)

◆ CustomData_free_typemask()

void CustomData_free_typemask ( struct CustomData data,
int  totelem,
CustomDataMask  mask 
)

◆ CustomData_from_bmesh_block()

void CustomData_from_bmesh_block ( const CustomData source,
CustomData dest,
void *  src_block,
int  dest_index 
)

◆ CustomData_from_bmeshpoly()

void CustomData_from_bmeshpoly ( CustomData fdata,
CustomData ldata,
int  total 
)

◆ CustomData_from_bmeshpoly_test()

bool CustomData_from_bmeshpoly_test ( CustomData fdata,
CustomData ldata,
bool  fallback 
)

Debug check, used to assert when we expect layers to be in/out of sync.

Parameters
fallbackUse when there are no layers to handle, since callers may expect success or failure.

Definition at line 3377 of file customdata.c.

References CD_MCOL, CD_MLOOPCOL, CD_MLOOPUV, CD_MTFACE, CD_NORMAL, CD_ORIGSPACE, CD_ORIGSPACE_MLOOP, CD_PREVIEW_MCOL, CD_PREVIEW_MLOOPCOL, CD_TANGENT, CD_TESSLOOPNORMAL, and LAYER_CMP.

Referenced by CustomData_from_bmeshpoly().

◆ CustomData_get()

void* CustomData_get ( const CustomData data,
int  index,
int  type 
)

◆ CustomData_get_active_layer()

int CustomData_get_active_layer ( const CustomData data,
int  type 
)

◆ CustomData_get_active_layer_index()

int CustomData_get_active_layer_index ( const CustomData data,
int  type 
)

◆ CustomData_get_clone_layer()

int CustomData_get_clone_layer ( const CustomData data,
int  type 
)

◆ CustomData_get_clone_layer_index()

int CustomData_get_clone_layer_index ( const CustomData data,
int  type 
)

Definition at line 2348 of file customdata.c.

References BLI_assert, customdata_typemap_is_valid(), data, and type.

◆ CustomData_get_layer()

void* CustomData_get_layer ( const CustomData data,
int  type 
)

Definition at line 3195 of file customdata.c.

References CustomData_get_active_layer_index(), data, NULL, and type.

◆ CustomData_get_layer_index()

int CustomData_get_layer_index ( const CustomData data,
int  type 
)

◆ CustomData_get_layer_index__notypemap()

static int CustomData_get_layer_index__notypemap ( const CustomData data,
int  type 
)
static

Definition at line 2288 of file customdata.c.

References data, and type.

Referenced by CustomData_free_layer().

◆ CustomData_get_layer_index_n()

int CustomData_get_layer_index_n ( const struct CustomData data,
int  type,
int  n 
)

◆ CustomData_get_layer_n()

void* CustomData_get_layer_n ( const CustomData data,
int  type,
int  n 
)

Definition at line 3206 of file customdata.c.

References CustomData_get_layer_index_n(), data, NULL, and type.

◆ CustomData_get_layer_name()

const char* CustomData_get_layer_name ( const CustomData data,
int  type,
int  n 
)

Definition at line 3263 of file customdata.c.

References CustomData_get_layer_index_n(), data, NULL, and type.

◆ CustomData_get_layer_named()

void* CustomData_get_layer_named ( const struct CustomData data,
int  type,
const char *  name 
)

◆ CustomData_get_n()

void* CustomData_get_n ( const CustomData data,
int  type,
int  index,
int  n 
)

Definition at line 3181 of file customdata.c.

References BLI_assert, data, layerType_getInfo(), NULL, POINTER_OFFSET, LayerTypeInfo::size, and type.

◆ CustomData_get_n_offset()

int CustomData_get_n_offset ( const CustomData data,
int  type,
int  n 
)

Definition at line 3238 of file customdata.c.

References CustomData_get_layer_index_n(), data, and type.

◆ CustomData_get_named_layer()

int CustomData_get_named_layer ( const struct CustomData data,
int  type,
const char *  name 
)

◆ CustomData_get_named_layer_index()

int CustomData_get_named_layer_index ( const CustomData data,
int  type,
const char *  name 
)

◆ CustomData_get_offset()

int CustomData_get_offset ( const CustomData data,
int  type 
)

Definition at line 3227 of file customdata.c.

References CustomData_get_active_layer_index(), data, and type.

◆ CustomData_get_render_layer()

int CustomData_get_render_layer ( const CustomData data,
int  type 
)

◆ CustomData_get_render_layer_index()

int CustomData_get_render_layer_index ( const CustomData data,
int  type 
)

Definition at line 2341 of file customdata.c.

References BLI_assert, customdata_typemap_is_valid(), data, and type.

◆ CustomData_get_stencil_layer()

int CustomData_get_stencil_layer ( const CustomData data,
int  type 
)

◆ CustomData_get_stencil_layer_index()

int CustomData_get_stencil_layer_index ( const CustomData data,
int  type 
)

Definition at line 2355 of file customdata.c.

References BLI_assert, customdata_typemap_is_valid(), data, and type.

◆ CustomData_has_interp()

bool CustomData_has_interp ( const struct CustomData data)

Definition at line 3869 of file customdata.c.

References CustomData_layer_has_interp(), and data.

Referenced by bm_grid_fill_array(), and BM_mesh_decimate_collapse().

◆ CustomData_has_layer()

bool CustomData_has_layer ( const CustomData data,
int  type 
)

◆ CustomData_has_math()

bool CustomData_has_math ( const struct CustomData data)

◆ CustomData_has_referenced()

bool CustomData_has_referenced ( const struct CustomData data)

Checks if any of the customdata layers is referenced.

Definition at line 3881 of file customdata.c.

References CD_FLAG_NOFREE, and data.

Referenced by BKE_mesh_nomain_to_mesh().

◆ CustomData_interp()

void CustomData_interp ( const CustomData source,
CustomData dest,
const int *  src_indices,
const float weights,
const float sub_weights,
int  count,
int  dest_index 
)

Interpolate given custom data source items into a single destination one.

Parameters
src_indicesIndices of every source items to interpolate into the destination one.
weightsThe weight to apply to each source value individually. If NULL, they will be averaged.
sub_weightsThe weights of sub-items, only used to affect each corners of a tessellated face data (should always be and array of four values).
countThe number of source items to interpolate.
dest_indexIndex of the destination item, in which to put the result of the interpolation.

Definition at line 3033 of file customdata.c.

References copy_vn_fl(), count, CustomDataLayer::data, ELEM, LayerTypeInfo::interp, CustomData::layers, layerType_getInfo(), MEM_freeN, MEM_malloc_arrayN, MEM_mallocN, NULL, POINTER_OFFSET, LayerTypeInfo::size, SOURCE_BUF_SIZE, CustomData::totlayer, and CustomDataLayer::type.

◆ CustomData_is_referenced_layer()

bool CustomData_is_referenced_layer ( struct CustomData data,
int  type 
)

◆ CustomData_layer_has_interp()

bool CustomData_layer_has_interp ( const struct CustomData data,
int  layer_n 
)

Definition at line 3832 of file customdata.c.

References data, LayerTypeInfo::interp, and layerType_getInfo().

Referenced by CustomData_has_interp(), and customdata_weld().

◆ CustomData_layer_has_math()

bool CustomData_layer_has_math ( const struct CustomData data,
int  layer_n 
)

◆ CustomData_layer_validate()

bool CustomData_layer_validate ( CustomDataLayer layer,
const uint  totitems,
const bool  do_fixes 
)

Validate and fix data of layer, if possible (needs relevant callback in layer's type to be defined).

Returns
True if some errors were found.

Definition at line 4460 of file customdata.c.

References CustomDataLayer::data, layerType_getInfo(), NULL, CustomDataLayer::type, and LayerTypeInfo::validate.

Referenced by mesh_validate_customdata().

◆ CustomData_layers__print()

void CustomData_layers__print ( CustomData data)

◆ CustomData_layertype_is_dynamic()

bool CustomData_layertype_is_dynamic ( int  type)

Has dynamically allocated members. This is useful to know if operations such as #memcmp are valid when comparing data from two layers.

Definition at line 4303 of file customdata.c.

References LayerTypeInfo::free, layerType_getInfo(), NULL, and type.

Referenced by um_arraystore_cd_compact().

◆ CustomData_layertype_is_singleton()

bool CustomData_layertype_is_singleton ( int  type)

◆ CustomData_layertype_layers_max()

int CustomData_layertype_layers_max ( const int  type)
Returns
Maximum number of layers of given type, -1 means 'no limit'.

Definition at line 4313 of file customdata.c.

References LayerTypeInfo::defaultname, LayerTypeInfo::layers_max, layerType_getInfo(), NULL, and type.

Referenced by CustomData_merge().

◆ CustomData_layertype_name()

const char* CustomData_layertype_name ( int  type)

◆ customData_mask_layers__print()

void customData_mask_layers__print ( const CustomData_MeshMasks mask)

Definition at line 2023 of file customdata.c.

References CD_NUMTYPES, CD_TYPE_AS_MASK, layerType_getName(), and mask().

◆ CustomData_merge()

bool CustomData_merge ( const struct CustomData source,
struct CustomData dest,
CustomDataMask  mask,
eCDAllocType  alloctype,
int  totelem 
)

◆ CustomData_MeshMasks_are_matching()

bool CustomData_MeshMasks_are_matching ( const CustomData_MeshMasks mask_ref,
const CustomData_MeshMasks mask_required 
)

◆ CustomData_MeshMasks_update()

void CustomData_MeshMasks_update ( CustomData_MeshMasks mask_dst,
const CustomData_MeshMasks mask_src 
)

◆ CustomData_number_of_layers()

int CustomData_number_of_layers ( const CustomData data,
int  type 
)

Definition at line 2729 of file customdata.c.

References data, and type.

◆ CustomData_number_of_layers_typemask()

int CustomData_number_of_layers_typemask ( const CustomData data,
CustomDataMask  mask 
)

Definition at line 2742 of file customdata.c.

References CD_TYPE_AS_MASK, data, and mask().

Referenced by CustomData_bmesh_merge().

◆ CustomData_realloc()

void CustomData_realloc ( CustomData data,
int  totelem 
)

◆ CustomData_reset()

void CustomData_reset ( struct CustomData data)

◆ customData_resize()

static bool customData_resize ( CustomData data,
int  amount 
)
static

◆ CustomData_set()

void CustomData_set ( const CustomData data,
int  index,
int  type,
const void *  source 
)

◆ CustomData_set_layer()

void* CustomData_set_layer ( const CustomData data,
int  type,
void *  ptr 
)

Definition at line 3270 of file customdata.c.

References CustomData_get_active_layer_index(), data, NULL, ptr, and type.

◆ CustomData_set_layer_active()

void CustomData_set_layer_active ( CustomData data,
int  type,
int  n 
)

◆ CustomData_set_layer_active_index()

void CustomData_set_layer_active_index ( CustomData data,
int  type,
int  n 
)

Definition at line 2439 of file customdata.c.

References data, and type.

Referenced by BKE_editmesh_loop_tangent_calc(), and BKE_mesh_calc_loop_tangent_ex().

◆ CustomData_set_layer_clone()

void CustomData_set_layer_clone ( CustomData data,
int  type,
int  n 
)

◆ CustomData_set_layer_clone_index()

void CustomData_set_layer_clone_index ( CustomData data,
int  type,
int  n 
)

Definition at line 2457 of file customdata.c.

References data, and type.

◆ CustomData_set_layer_flag()

void CustomData_set_layer_flag ( struct CustomData data,
int  type,
int  flag 
)

◆ CustomData_set_layer_n()

void* CustomData_set_layer_n ( const struct CustomData data,
int  type,
int  n,
void *  ptr 
)

Definition at line 3284 of file customdata.c.

References CustomData_get_layer_index_n(), data, NULL, ptr, and type.

◆ CustomData_set_layer_name()

bool CustomData_set_layer_name ( const CustomData data,
int  type,
int  n,
const char *  name 
)

Definition at line 3249 of file customdata.c.

References BLI_strncpy(), CustomData_get_layer_index_n(), data, and type.

◆ CustomData_set_layer_render()

void CustomData_set_layer_render ( CustomData data,
int  type,
int  n 
)

◆ CustomData_set_layer_render_index()

void CustomData_set_layer_render_index ( CustomData data,
int  type,
int  n 
)

Definition at line 2448 of file customdata.c.

References data, and type.

Referenced by BKE_editmesh_loop_tangent_calc(), and BKE_mesh_calc_loop_tangent_ex().

◆ CustomData_set_layer_stencil()

void CustomData_set_layer_stencil ( CustomData data,
int  type,
int  n 
)

◆ CustomData_set_layer_stencil_index()

void CustomData_set_layer_stencil_index ( CustomData data,
int  type,
int  n 
)

Definition at line 2466 of file customdata.c.

References data, and type.

◆ CustomData_set_layer_unique_name()

void CustomData_set_layer_unique_name ( CustomData data,
int  index 
)

◆ CustomData_set_only_copy()

void CustomData_set_only_copy ( const struct CustomData data,
CustomDataMask  mask 
)

◆ CustomData_sizeof()

int CustomData_sizeof ( int  type)

◆ CustomData_swap()

void CustomData_swap ( struct CustomData data,
const int  index_a,
const int  index_b 
)

Swap two items of given custom data, in all available layers.

Definition at line 3138 of file customdata.c.

References data, layerType_getInfo(), MEM_freeN, MEM_mallocN, POINTER_OFFSET, size(), and LayerTypeInfo::size.

Referenced by BKE_mesh_polygon_flip_ex().

◆ CustomData_swap_corners()

void CustomData_swap_corners ( struct CustomData data,
int  index,
const int *  corner_indices 
)

Swap data inside each item, for all layers. This only applies to item types that may store several sub-item data (e.g. corner data [UVs, VCol, ...] of tessellated faces).

Parameters
corner_indicesA mapping 'new_index -> old_index' of sub-item data.

Definition at line 3122 of file customdata.c.

References data, layerType_getInfo(), POINTER_OFFSET, LayerTypeInfo::size, and LayerTypeInfo::swap.

Referenced by test_index_face().

◆ CustomData_to_bmesh_block()

void CustomData_to_bmesh_block ( const CustomData source,
CustomData dest,
int  src_index,
void **  dest_block,
bool  use_default_init 
)
Parameters
use_default_initinitializes data which can't be copied, typically you'll want to use this if the BM_xxx create function is called with BM_CREATE_SKIP_CD flag

Definition at line 4104 of file customdata.c.

References LayerTypeInfo::copy, CustomData_bmesh_alloc_block(), CustomData_bmesh_set_default_n(), CustomDataLayer::data, if(), CustomData::layers, layerType_getInfo(), NULL, CustomDataLayer::offset, POINTER_OFFSET, LayerTypeInfo::size, CustomData::totlayer, and CustomDataLayer::type.

◆ CustomData_to_bmeshpoly()

void CustomData_to_bmeshpoly ( CustomData fdata,
CustomData ldata,
int  totloop 
)

◆ customdata_typemap_is_valid()

static bool customdata_typemap_is_valid ( const CustomData data)
static

◆ customdata_unique_check()

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

Definition at line 4351 of file customdata.c.

References cd_layer_find_dupe(), data, and type.

Referenced by CustomData_set_layer_unique_name().

◆ customData_update_offsets()

static void customData_update_offsets ( CustomData data)
static

◆ CustomData_update_typemap()

void CustomData_update_typemap ( CustomData data)

◆ CustomData_validate_layer_name()

void CustomData_validate_layer_name ( const CustomData data,
int  type,
const char *  name,
char *  outname 
)

◆ CustomData_verify_versions()

bool CustomData_verify_versions ( struct CustomData data,
int  index 
)

◆ layerAdd_mloop_origspace()

static void layerAdd_mloop_origspace ( void *  data1,
const void *  data2 
)
static

Definition at line 1058 of file customdata.c.

References add_v2_v2(), data1, data2, and OrigSpaceLoop::uv.

◆ layerAdd_mloopcol()

static void layerAdd_mloopcol ( void *  data1,
const void *  data2 
)
static

Definition at line 815 of file customdata.c.

References MLoopCol::a, MLoopCol::b, data1, data2, MLoopCol::g, and MLoopCol::r.

◆ layerAdd_mloopuv()

static void layerAdd_mloopuv ( void *  data1,
const void *  data2 
)
static

Definition at line 967 of file customdata.c.

References add_v2_v2(), data1, data2, and MLoopUV::uv.

◆ layerAdd_propcol()

static void layerAdd_propcol ( void *  data1,
const void *  data2 
)
static

Definition at line 1335 of file customdata.c.

References add_v4_v4(), MPropCol::color, data1, and data2.

◆ layerAdd_propfloat2()

static void layerAdd_propfloat2 ( void *  data1,
const void *  data2 
)
static

Definition at line 1457 of file customdata.c.

References data1, data2, vec2f::x, and vec2f::y.

◆ layerAdd_propfloat3()

static void layerAdd_propfloat3 ( void *  data1,
const void *  data2 
)
static

Definition at line 1411 of file customdata.c.

References data1, data2, vec3f::x, vec3f::y, and vec3f::z.

◆ layerCopy_bmesh_elem_py_ptr()

static void layerCopy_bmesh_elem_py_ptr ( const void *  UNUSEDsource,
void *  dest,
int  count 
)
static

Definition at line 213 of file customdata.c.

References count, NULL, POINTER_OFFSET, ptr, and size().

◆ layerCopy_grid_paint_mask()

static void layerCopy_grid_paint_mask ( const void *  source,
void *  dest,
int  count 
)
static

Definition at line 703 of file customdata.c.

References count, data, GridPaintMask::data, GridPaintMask::level, MEM_dupallocN, and NULL.

◆ layerCopy_mdeformvert()

static void layerCopy_mdeformvert ( const void *  source,
void *  dest,
int  count 
)
static

◆ layerCopy_mdisps()

static void layerCopy_mdisps ( const void *  source,
void *  dest,
int  count 
)
static

◆ layerCopy_mvert_skin()

static void layerCopy_mvert_skin ( const void *  source,
void *  dest,
int  count 
)
static

Definition at line 1218 of file customdata.c.

References count.

◆ layerCopy_origspace_face()

static void layerCopy_origspace_face ( const void *  source,
void *  dest,
int  count 
)
static

Definition at line 518 of file customdata.c.

References count.

◆ layerCopy_propFloat()

static void layerCopy_propFloat ( const void *  source,
void *  dest,
int  count 
)
static

Definition at line 471 of file customdata.c.

References count.

◆ layerCopy_propInt()

static void layerCopy_propInt ( const void *  source,
void *  dest,
int  count 
)
static

Definition at line 508 of file customdata.c.

References count.

◆ layerCopy_propString()

static void layerCopy_propString ( const void *  source,
void *  dest,
int  count 
)
static

Definition at line 513 of file customdata.c.

References count.

◆ layerCopy_tface()

static void layerCopy_tface ( const void *  source,
void *  dest,
int  count 
)
static

Definition at line 406 of file customdata.c.

References count.

◆ layerCopyValue_mloop_origspace()

static void layerCopyValue_mloop_origspace ( const void *  source,
void *  dest,
const int   UNUSEDmixmode,
const float   UNUSEDmixfactor 
)
static

Definition at line 1018 of file customdata.c.

References copy_v2_v2(), and OrigSpaceLoop::uv.

◆ layerCopyValue_mloopcol()

static void layerCopyValue_mloopcol ( const void *  source,
void *  dest,
const int  mixmode,
const float  mixfactor 
)
static

◆ layerCopyValue_mloopuv()

static void layerCopyValue_mloopuv ( const void *  source,
void *  dest,
const int  mixmode,
const float  mixfactor 
)
static

Definition at line 919 of file customdata.c.

References CDT_MIX_NOMIX, copy_v2_v2(), interp_v2_v2v2(), and MLoopUV::uv.

◆ layerCopyValue_normal()

static void layerCopyValue_normal ( const void *  source,
void *  dest,
const int  mixmode,
const float  mixfactor 
)
static

◆ layerCopyValue_propcol()

static void layerCopyValue_propcol ( const void *  source,
void *  dest,
const int  mixmode,
const float  mixfactor 
)
static

◆ layerDefault_fmap()

static void layerDefault_fmap ( void *  data,
int  count 
)
static

Definition at line 1260 of file customdata.c.

References count, and data.

◆ layerDefault_mcol()

static void layerDefault_mcol ( void *  data,
int  count 
)
static

Definition at line 1146 of file customdata.c.

References count, and data.

◆ layerDefault_mloopcol()

static void layerDefault_mloopcol ( void *  data,
int  count 
)
static

Definition at line 872 of file customdata.c.

References count, and data.

◆ layerDefault_mvert_skin()

static void layerDefault_mvert_skin ( void *  data,
int  count 
)
static

Definition at line 1208 of file customdata.c.

References copy_v3_fl(), count, data, and MVertSkin::flag.

◆ layerDefault_origindex()

static void layerDefault_origindex ( void *  data,
int  count 
)
static

Definition at line 1156 of file customdata.c.

References copy_vn_i(), count, data, and ORIGINDEX_NONE.

◆ layerDefault_origspace_face()

static void layerDefault_origspace_face ( void *  data,
int  count 
)
static

Definition at line 566 of file customdata.c.

References count, and data.

◆ layerDefault_propcol()

static void layerDefault_propcol ( void *  data,
int  count 
)
static

Definition at line 1357 of file customdata.c.

References MPropCol::color, copy_v4_v4(), count, and data.

◆ layerDefault_tface()

static void layerDefault_tface ( void *  data,
int  count 
)
static

Definition at line 456 of file customdata.c.

References count, and data.

◆ layerDoMinMax_mloop_origspace()

static void layerDoMinMax_mloop_origspace ( const void *  data,
void *  vmin,
void *  vmax 
)
static

Definition at line 1050 of file customdata.c.

References data, max, min, minmax_v2v2_v2(), and OrigSpaceLoop::uv.

◆ layerDoMinMax_mloopcol()

static void layerDoMinMax_mloopcol ( const void *  data,
void *  vmin,
void *  vmax 
)
static

Definition at line 826 of file customdata.c.

References MLoopCol::a, MLoopCol::b, data, MLoopCol::g, max, min, and MLoopCol::r.

◆ layerDoMinMax_mloopuv()

static void layerDoMinMax_mloopuv ( const void *  data,
void *  vmin,
void *  vmax 
)
static

Definition at line 959 of file customdata.c.

References data, max, min, minmax_v2v2_v2(), and MLoopUV::uv.

◆ layerDoMinMax_propcol()

static void layerDoMinMax_propcol ( const void *  data,
void *  vmin,
void *  vmax 
)
static

Definition at line 1342 of file customdata.c.

References MPropCol::color, data, max, min, and minmax_v4v4_v4().

◆ layerEqual_mloop_origspace()

static bool layerEqual_mloop_origspace ( const void *  data1,
const void *  data2 
)
static

Definition at line 1029 of file customdata.c.

References data1, data2, len_squared_v2v2(), and OrigSpaceLoop::uv.

◆ layerEqual_mloopcol()

static bool layerEqual_mloopcol ( const void *  data1,
const void *  data2 
)
static

Definition at line 792 of file customdata.c.

References Freestyle::a, MLoopCol::a, MLoopCol::b, data1, data2, MLoopCol::g, r, and MLoopCol::r.

◆ layerEqual_mloopuv()

static bool layerEqual_mloopuv ( const void *  data1,
const void *  data2 
)
static

Definition at line 938 of file customdata.c.

References data1, data2, len_squared_v2v2(), and MLoopUV::uv.

◆ layerEqual_propcol()

static bool layerEqual_propcol ( const void *  data1,
const void *  data2 
)
static

Definition at line 1316 of file customdata.c.

References Freestyle::c, MPropCol::color, data1, and data2.

◆ layerFilesize_mdisps()

static size_t layerFilesize_mdisps ( CDataFile UNUSEDcdf,
const void *  data,
int  count 
)
static

Definition at line 677 of file customdata.c.

References count, data, and size().

◆ layerFree_bmesh_elem_py_ptr()

static void layerFree_bmesh_elem_py_ptr ( void *  data,
int  count,
int  size 
)
static

Definition at line 230 of file customdata.c.

References bpy_bm_generic_invalidate(), count, data, POINTER_OFFSET, ptr, and size().

◆ layerFree_grid_paint_mask()

static void layerFree_grid_paint_mask ( void *  data,
int  count,
int   UNUSEDsize 
)
static

Definition at line 720 of file customdata.c.

References count, data, GridPaintMask::data, GridPaintMask::level, MEM_freeN, and NULL.

◆ layerFree_mdeformvert()

static void layerFree_mdeformvert ( void *  data,
int  count,
int  size 
)
static

◆ layerFree_mdisps()

static void layerFree_mdisps ( void *  data,
int  count,
int   UNUSEDsize 
)
static

Definition at line 627 of file customdata.c.

References count, data, MDisps::disps, MDisps::hidden, MDisps::level, MEM_freeN, NULL, and MDisps::totdisp.

◆ layerInitMinMax_mloop_origspace()

static void layerInitMinMax_mloop_origspace ( void *  vmin,
void *  vmax 
)
static

Definition at line 1043 of file customdata.c.

References INIT_MINMAX2, max, and min.

◆ layerInitMinMax_mloopcol()

static void layerInitMinMax_mloopcol ( void *  vmin,
void *  vmax 
)
static

Definition at line 857 of file customdata.c.

References max, and min.

◆ layerInitMinMax_mloopuv()

static void layerInitMinMax_mloopuv ( void *  vmin,
void *  vmax 
)
static

Definition at line 952 of file customdata.c.

References INIT_MINMAX2, max, and min.

◆ layerInitMinMax_propcol()

static void layerInitMinMax_propcol ( void *  vmin,
void *  vmax 
)
static

Definition at line 1349 of file customdata.c.

References copy_v4_fl(), max, and min.

◆ layerInterp_bweight()

static void layerInterp_bweight ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 1161 of file customdata.c.

References count.

◆ layerInterp_mcol()

static void layerInterp_mcol ( const void **  sources,
const float weights,
const float sub_weights,
int  count,
void *  dest 
)
static

Definition at line 1086 of file customdata.c.

References Freestyle::a, MCol::a, MCol::b, col, count, MCol::g, r, MCol::r, round_fl_to_uchar_clamp(), and w().

◆ layerInterp_mdeformvert()

static void layerInterp_mdeformvert ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

◆ layerInterp_mloop_origspace()

static void layerInterp_mloop_origspace ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 1066 of file customdata.c.

References copy_v2_v2(), count, madd_v2_v2fl(), OrigSpaceLoop::uv, and zero_v2().

◆ layerInterp_mloopcol()

static void layerInterp_mloopcol ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

◆ layerInterp_mloopuv()

static void layerInterp_mloopuv ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 975 of file customdata.c.

References copy_v2_v2(), count, MLoopUV::flag, madd_v2_v2fl(), MLoopUV::uv, and zero_v2().

◆ layerInterp_mvert_skin()

static void layerInterp_mvert_skin ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

◆ layerInterp_normal()

static void layerInterp_normal ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 326 of file customdata.c.

References count, madd_v3_v3fl(), and normalize_v3_v3().

◆ layerInterp_origspace_face()

static void layerInterp_origspace_face ( const void **  sources,
const float weights,
const float sub_weights,
int  count,
void *  dest 
)
static

Definition at line 528 of file customdata.c.

References count, madd_v2_v2fl(), and OrigSpaceFace::uv.

◆ layerInterp_paint_mask()

static void layerInterp_paint_mask ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 688 of file customdata.c.

References count, and mask().

◆ layerInterp_propcol()

static void layerInterp_propcol ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 1367 of file customdata.c.

References col, MPropCol::color, copy_v4_v4(), count, and madd_v4_v4fl().

◆ layerInterp_propFloat()

static void layerInterp_propFloat ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 476 of file customdata.c.

References count, and result.

◆ layerInterp_propfloat2()

static void layerInterp_propfloat2 ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 1435 of file customdata.c.

References copy_v2_v2(), count, madd_v2_v2fl(), result, and vec2f::x.

◆ layerInterp_propfloat3()

static void layerInterp_propfloat3 ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 1388 of file customdata.c.

References copy_v3_v3(), count, madd_v3_v3fl(), result, and vec3f::x.

◆ layerInterp_shapekey()

static void layerInterp_shapekey ( const void **  sources,
const float weights,
const float UNUSEDsub_weights,
int  count,
void *  dest 
)
static

Definition at line 1184 of file customdata.c.

References copy_v3_v3(), count, madd_v3_v3fl(), and zero_v3().

◆ layerInterp_tface()

static void layerInterp_tface ( const void **  sources,
const float weights,
const float sub_weights,
int  count,
void *  dest 
)
static

Definition at line 415 of file customdata.c.

References count, madd_v2_v2fl(), and MTFace::uv.

◆ layerMaxNum_mloopcol()

static int layerMaxNum_mloopcol ( void  )
static

Definition at line 914 of file customdata.c.

References MAX_MCOL.

◆ layerMaxNum_propcol()

static int layerMaxNum_propcol ( void  )
static

Definition at line 1383 of file customdata.c.

References MAX_MCOL.

◆ layerMaxNum_tface()

static int layerMaxNum_tface ( void  )
static

Definition at line 466 of file customdata.c.

References MAX_MTFACE.

◆ layerMultiply_mloop_origspace()

static void layerMultiply_mloop_origspace ( void *  data,
float  fac 
)
static

Definition at line 1036 of file customdata.c.

References data, mul_v2_fl(), and OrigSpaceLoop::uv.

◆ layerMultiply_mloopcol()

static void layerMultiply_mloopcol ( void *  data,
float  fac 
)
static

Definition at line 805 of file customdata.c.

References MLoopCol::a, MLoopCol::b, data, float(), MLoopCol::g, and MLoopCol::r.

◆ layerMultiply_mloopuv()

static void layerMultiply_mloopuv ( void *  data,
float  fac 
)
static

Definition at line 945 of file customdata.c.

References data, mul_v2_fl(), and MLoopUV::uv.

◆ layerMultiply_propcol()

static void layerMultiply_propcol ( void *  data,
float  fac 
)
static

Definition at line 1329 of file customdata.c.

References MPropCol::color, data, and mul_v4_fl().

◆ layerMultiply_propfloat2()

static void layerMultiply_propfloat2 ( void *  data,
float  fac 
)
static

Definition at line 1450 of file customdata.c.

References data, vec2f::x, and vec2f::y.

◆ layerMultiply_propfloat3()

static void layerMultiply_propfloat3 ( void *  data,
float  fac 
)
static

Definition at line 1403 of file customdata.c.

References data, vec3f::x, vec3f::y, and vec3f::z.

◆ layerRead_mdisps()

static bool layerRead_mdisps ( CDataFile cdf,
void *  data,
int  count 
)
static

Definition at line 645 of file customdata.c.

References cdf_read_data(), CLOG_ERROR, count, data, MDisps::disps, LOG, and MEM_calloc_arrayN.

◆ layerSwap_flnor()

static void layerSwap_flnor ( void *  data,
const int *  corner_indices 
)
static

Definition at line 1247 of file customdata.c.

References copy_v3_v3_short(), and data.

◆ layerSwap_mcol()

static void layerSwap_mcol ( void *  data,
const int *  corner_indices 
)
static

Definition at line 1134 of file customdata.c.

References col, and data.

◆ layerSwap_mdisps()

static void layerSwap_mdisps ( void *  data,
const int *  ci 
)
static

◆ layerSwap_origspace_face()

static void layerSwap_origspace_face ( void *  data,
const int *  corner_indices 
)
static

Definition at line 555 of file customdata.c.

References copy_v2_v2(), data, and OrigSpaceFace::uv.

◆ layerSwap_tface()

static void layerSwap_tface ( void *  data,
const int *  corner_indices 
)
static

Definition at line 443 of file customdata.c.

References copy_v2_v2(), data, and MTFace::uv.

◆ layerType_getInfo()

static const LayerTypeInfo* layerType_getInfo ( int  type)
static

Definition at line 2005 of file customdata.c.

References CD_NUMTYPES, LAYERTYPEINFO, NULL, and type.

Referenced by CustomData_add_layer(), customData_add_layer__internal(), CustomData_blend_read(), CustomData_bmesh_copy_data_exclude_by_type(), CustomData_bmesh_free_block(), CustomData_bmesh_free_block_data(), CustomData_bmesh_free_block_data_exclude_by_type(), CustomData_bmesh_has_free(), CustomData_bmesh_interp(), CustomData_bmesh_interp_n(), CustomData_bmesh_set(), CustomData_bmesh_set_default_n(), CustomData_bmesh_set_layer_n(), CustomData_bmesh_set_n(), CustomData_copy_data_layer(), CustomData_copy_elements(), CustomData_data_add(), CustomData_data_copy_value(), CustomData_data_dominmax(), CustomData_data_equals(), CustomData_data_initminmax(), CustomData_data_mix_value(), CustomData_data_multiply(), CustomData_data_transfer(), customdata_data_transfer_interp_generic(), customdata_data_transfer_interp_normal_normals(), customData_duplicate_referenced_layer_index(), CustomData_external_read(), CustomData_external_reload(), CustomData_external_write(), CustomData_file_write_info(), CustomData_free_elem(), customData_free_layer__internal(), CustomData_from_bmesh_block(), CustomData_get(), CustomData_get_n(), CustomData_interp(), CustomData_layer_has_interp(), CustomData_layer_has_math(), CustomData_layer_validate(), CustomData_layertype_is_dynamic(), CustomData_layertype_is_singleton(), CustomData_layertype_layers_max(), CustomData_realloc(), CustomData_set(), CustomData_set_layer_unique_name(), CustomData_sizeof(), CustomData_swap(), CustomData_swap_corners(), CustomData_to_bmesh_block(), customData_update_offsets(), and CustomData_verify_versions().

◆ layerType_getName()

static const char* layerType_getName ( int  type)
static

◆ layerValidate_mloopuv()

static bool layerValidate_mloopuv ( void *  data,
const uint  totitems,
const bool  do_fixes 
)
static

Definition at line 1000 of file customdata.c.

References data, is_finite_v2(), MLoopUV::uv, and zero_v2().

◆ layerValidate_normal()

static bool layerValidate_normal ( void *  data,
const uint  totitems,
const bool  do_fixes 
)
static

◆ layerValidate_propFloat()

static bool layerValidate_propFloat ( void *  data,
const uint  totitems,
const bool  do_fixes 
)
static

Definition at line 491 of file customdata.c.

References data, MFloatProperty::f, and CCL_NAMESPACE_BEGIN::isfinite().

◆ layerValidate_propfloat2()

static bool layerValidate_propfloat2 ( void *  data,
const uint  totitems,
const bool  do_fixes 
)
static

Definition at line 1465 of file customdata.c.

References data, and CCL_NAMESPACE_BEGIN::isfinite().

◆ layerValidate_propfloat3()

static bool layerValidate_propfloat3 ( void *  data,
const uint  totitems,
const bool  do_fixes 
)
static

Definition at line 1420 of file customdata.c.

References data, and CCL_NAMESPACE_BEGIN::isfinite().

◆ layerWrite_mdisps()

static bool layerWrite_mdisps ( CDataFile cdf,
const void *  data,
int  count 
)
static

Definition at line 663 of file customdata.c.

References cdf_write_data(), CLOG_ERROR, count, data, and LOG.

◆ write_grid_paint_mask()

static void write_grid_paint_mask ( BlendWriter writer,
int  count,
GridPaintMask grid_paint_mask 
)
static

◆ write_mdisps()

static void write_mdisps ( BlendWriter writer,
int  count,
MDisps mdlist,
int  external 
)
static

Variable Documentation

◆ CD_MASK_BAREMESH

const CustomData_MeshMasks CD_MASK_BAREMESH
Initial value:
= {
.fmask = 0,
.lmask = CD_MASK_MLOOP,
}
#define CD_MASK_MLOOP
#define CD_MASK_BWEIGHT
#define CD_MASK_MEDGE
#define CD_MASK_MPOLY
#define CD_MASK_MVERT
#define CD_MASK_FACEMAP

Definition at line 1919 of file customdata.c.

Referenced by add_verts_to_dgroups(), BKE_crazyspace_get_first_deform_matrices_editbmesh(), BKE_crazyspace_get_mapped_editverts(), BKE_editmesh_vert_coords_alloc(), BKE_multires_create_mesh(), BKE_object_data_transfer_ex(), BKE_object_data_transfer_layout(), BKE_object_handle_data_update(), bvh_get_mesh(), dt_layers_select_src_itemf(), ED_mesh_pick_vert(), ED_mesh_shapes_join_objects_exec(), ED_view3d_screen_datamask(), editbmesh_calc_modifiers(), knifeproject_poly_from_object(), mesh_foreachScreenEdge(), mesh_foreachScreenEdge_clip_bb_segment(), mesh_foreachScreenFace(), mesh_foreachScreenVert(), meshobject_foreachScreenVert(), modifier_skin_armature_create(), multires_modifier_update_mdisps(), multires_reshape_create_subdiv(), multiresbake_create_hiresdm(), multiresbake_create_loresdm(), multiresModifier_reshapeFromObject(), object_force_modifier_update_for_bind(), paint_sample_color(), particle_intersect_mesh(), pointdensity_cache_object(), and vgroup_fix().

◆ CD_MASK_BAREMESH_ORIGINDEX

const CustomData_MeshMasks CD_MASK_BAREMESH_ORIGINDEX

◆ CD_MASK_BMESH

const CustomData_MeshMasks CD_MASK_BMESH
Initial value:
= {
.fmask = 0,
}
#define CD_MASK_SCULPT_FACE_SETS
#define CD_MASK_PROP_COLOR
#define CD_MASK_MDEFORMVERT
#define CD_MASK_MLOOPCOL
#define CD_MASK_MVERT_SKIN
#define CD_MASK_PROP_ALL
#define CD_MASK_FREESTYLE_FACE
#define CD_MASK_SHAPE_KEYINDEX
#define CD_MASK_GRID_PAINT_MASK
#define CD_MASK_CUSTOMLOOPNORMAL
#define CD_MASK_CREASE
#define CD_MASK_SHAPEKEY
#define CD_MASK_MLOOPUV
#define CD_MASK_MDISPS
#define CD_MASK_FREESTYLE_EDGE
#define CD_MASK_PAINT_MASK

Definition at line 1964 of file customdata.c.

Referenced by BM_mesh_bm_from_me(), BM_mesh_copy_init_customdata(), BM_mesh_copy_init_customdata_from_mesh(), and bpy_bmesh_from_object().

◆ CD_MASK_DERIVEDMESH

const CustomData_MeshMasks CD_MASK_DERIVEDMESH

◆ CD_MASK_EDITMESH

const CustomData_MeshMasks CD_MASK_EDITMESH

◆ CD_MASK_EVERYTHING

const CustomData_MeshMasks CD_MASK_EVERYTHING
Initial value:
= {
}
#define CD_MASK_BM_ELEM_PYPTR
#define CD_MASK_NORMAL
#define CD_MASK_MCOL
#define CD_MASK_TESSLOOPNORMAL
#define CD_MASK_MTFACE
#define CD_MASK_MFACE
#define CD_MASK_MLOOPTANGENT

Definition at line 1986 of file customdata.c.

Referenced by BKE_mesh_new_nomain_from_template(), geometry_extract_apply(), loop_interpolation_init(), subdiv_mesh_topology_info(), and vertex_interpolation_init().

◆ CD_MASK_FACECORNERS

const CustomData_MeshMasks CD_MASK_FACECORNERS

◆ CD_MASK_MESH

const CustomData_MeshMasks CD_MASK_MESH
Initial value:

Definition at line 1933 of file customdata.c.

Referenced by bc_get_mesh_copy(), BKE_mesh_from_nurbs_displist(), BKE_mesh_new_from_object_to_bmain(), BKE_mesh_to_curve(), BKE_mesh_to_pointcloud(), BKE_mesh_validate_all_customdata(), BM_mesh_bm_to_me(), CDDM_from_mesh(), blender::io::alembic::ABCHairWriter::do_write(), duplibase_for_convert(), join_mesh_single(), mesh_add_edges(), mesh_add_loops(), mesh_add_polys(), mesh_add_verts(), mesh_blend_write(), mesh_copy_data(), mesh_new_from_mesh_object_with_layers(), modifier_apply_obdata(), multires_external_save_exec(), multiresModifier_rebuild_subdiv(), object_convert_exec(), paint_mask_slice_exec(), quadriflow_start_job(), blender::io::alembic::AbcSubDReader::readObjectData(), blender::io::alembic::AbcPointsReader::readObjectData(), blender::io::alembic::AbcMeshReader::readObjectData(), SCULPT_dynamic_topology_disable_ex(), sculpt_gesture_apply_trim(), sculpt_undo_geometry_restore_data(), sculpt_undo_geometry_store_data(), and voxel_remesh_exec().

◆ LAYERTYPEINFO

const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES]
static

Definition at line 1480 of file customdata.c.

Referenced by layerType_getInfo().

◆ LAYERTYPENAMES

const char* LAYERTYPENAMES[CD_NUMTYPES]
static

Definition at line 1863 of file customdata.c.

Referenced by layerType_getName().

◆ LOG

CLG_LogRef LOG = {"bke.customdata"}
static