41#define UV_VERTSEL_NAME "vs"
42#define UV_EDGESEL_NAME "es"
43#define UV_PINNED_NAME "pn"
59 unsigned char data[64];
70#define ORIGINDEX_NONE -1
87#define CD_TYPE_AS_MASK(_type) (eCustomDataMask)((eCustomDataMask)1 << (eCustomDataMask)(_type))
92 const void **sources,
const float *weights,
const float *sub_weights,
int count,
void *dest);
93using cd_copy = void (*)(
const void *source,
void *dest,
int count);
144 eCustomDataType type,
const void *source,
void *dest,
int mixmode,
float mixfactor);
167 eCustomDataMask mask,
178 eCustomDataMask mask,
190 eCustomDataMask mask,
198 eCustomDataMask mask,
219 eCustomDataMask mask,
230 eCustomDataMask mask);
389 eCustomDataMask mask_exclude = 0);
397 const void *src_block,
407 int destination_index,
430 const int *src_indices,
431 const float *weights,
432 const float *sub_weights,
440 const void **src_blocks,
441 const float *weights,
442 const float *sub_weights,
447 const void **src_blocks,
448 const float *weights,
449 const float *sub_weights,
602 eCustomDataMask mask_exclude);
608 const char **r_struct_name,
678 const void **sources,
679 const float *weights,
795 eCustomDataMask cddata_mask,
void CustomData_data_set_default_value(eCustomDataType type, void *elem)
void CustomData_debug_info_from_layers(const CustomData *data, const char *indent, DynStr *dynstr)
void CustomData_blend_write_prepare(CustomData &data, blender::Vector< CustomDataLayer, 16 > &layers_to_write, const blender::Set< std::string > &skip_names={})
void CustomData_count_memory(const CustomData &data, int totelem, blender::MemoryCounter &memory)
void(*)( const void **sources, const float *weights, const float *sub_weights, int count, void *dest) cd_interp
int CustomData_sizeof(eCustomDataType type)
const CustomData_MeshMasks CD_MASK_EVERYTHING
void CustomData_realloc(CustomData *data, int old_size, int new_size, eCDAllocType alloctype=CD_CONSTRUCT)
void * CustomData_get_n_for_write(CustomData *data, eCustomDataType type, int index, int n, int totelem)
int CustomData_get_offset(const CustomData *data, eCustomDataType type)
const char * CustomData_layertype_name(eCustomDataType type)
void * CustomData_get_layer_named_for_write(CustomData *data, eCustomDataType type, blender::StringRef name, int totelem)
int CustomData_get_layer_index_n(const CustomData *data, eCustomDataType type, int n)
void CustomData_set_only_copy(const CustomData *data, eCustomDataMask mask)
int CustomData_get_clone_layer(const CustomData *data, eCustomDataType type)
const void * CustomData_get_layer_n(const CustomData *data, eCustomDataType type, int n)
int CustomData_get_named_layer(const CustomData *data, eCustomDataType type, blender::StringRef name)
@ CDT_MIX_REPLACE_BELOW_THRESHOLD
@ CDT_MIX_REPLACE_ABOVE_THRESHOLD
bool CustomData_bmesh_merge_layout(const CustomData *source, CustomData *dest, eCustomDataMask mask, eCDAllocType alloctype, BMesh *bm, char htype)
bool CustomData_free_layer_named(CustomData *data, blender::StringRef name, const int totelem)
void CustomData_set_layer_render_index(CustomData *data, eCustomDataType type, int n)
const void * CustomData_get_layer(const CustomData *data, eCustomDataType type)
void CustomData_external_remove(CustomData *data, ID *id, eCustomDataType type, int totelem)
const CustomData_MeshMasks CD_MASK_BAREMESH_ORIGINDEX
int CustomData_get_named_layer_index_notype(const CustomData *data, blender::StringRef name)
int CustomData_number_of_anonymous_layers(const CustomData *data, eCustomDataType type)
void(*)(const CustomDataTransferLayerMap *laymap, void *dest, const void **sources, const float *weights, int count, float mix_factor) cd_datatransfer_interp
bool CustomData_layer_has_interp(const CustomData *data, int layer_n)
void CustomData_set_layer_flag(CustomData *data, eCustomDataType type, int flag)
int CustomData_get_n_offset(const CustomData *data, eCustomDataType type, int n)
bool CustomData_layer_is_anonymous(const CustomData *data, eCustomDataType type, int n)
void CustomData_external_read(CustomData *data, ID *id, eCustomDataMask mask, int totelem)
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_copy_elements(eCustomDataType type, void *src_data_ofs, void *dst_data_ofs, int count)
void CustomData_bmesh_free_block(CustomData *data, void **block)
const void * CustomData_get_layer_named(const CustomData *data, eCustomDataType type, blender::StringRef name)
void * CustomData_add_layer_named(CustomData *data, eCustomDataType type, eCDAllocType alloctype, int totelem, blender::StringRef name)
BMCustomDataCopyMap CustomData_bmesh_copy_map_calc(const CustomData &src, const CustomData &dst, eCustomDataMask mask_exclude=0)
void CustomData_validate_layer_name(const CustomData *data, eCustomDataType type, blender::StringRef name, char *outname)
void CustomData_data_initminmax(eCustomDataType type, void *min, void *max)
int CustomData_number_of_layers_typemask(const CustomData *data, eCustomDataMask mask)
void CustomData_MeshMasks_update(CustomData_MeshMasks *mask_dst, const CustomData_MeshMasks *mask_src)
void CustomData_bmesh_init_pool(CustomData *data, int totelem, char htype)
void CustomData_set_layer_render(CustomData *data, eCustomDataType type, int n)
void * CustomData_bmesh_get_n(const CustomData *data, void *block, eCustomDataType type, int n)
bool CustomData_free_layer_active(CustomData *data, eCustomDataType type, int totelem)
int CustomData_get_stencil_layer(const CustomData *data, eCustomDataType type)
void(*)(void *data, int count) cd_set_default_value
void CustomData_clear_layer_flag(CustomData *data, eCustomDataType type, int flag)
void customData_mask_layers__print(const CustomData_MeshMasks *mask)
void CustomData_reset(CustomData *data)
int CustomData_get_named_layer_index(const CustomData *data, eCustomDataType type, blender::StringRef name)
bool CustomData_has_layer_named(const CustomData *data, eCustomDataType type, blender::StringRef name)
bool CustomData_layer_has_math(const CustomData *data, int layer_n)
bool CustomData_set_layer_name(CustomData *data, eCustomDataType type, int n, blender::StringRef name)
const char * CustomData_get_layer_name(const CustomData *data, eCustomDataType type, int n)
bool CustomData_MeshMasks_are_matching(const CustomData_MeshMasks *mask_ref, const CustomData_MeshMasks *mask_required)
bool CustomData_free_layer(CustomData *data, eCustomDataType type, int totelem, int index)
int CustomData_get_offset_named(const CustomData *data, eCustomDataType type, blender::StringRef name)
void * CustomData_bmesh_get(const CustomData *data, void *block, eCustomDataType type)
void CustomData_blend_write(BlendWriter *writer, CustomData *data, blender::Span< CustomDataLayer > layers_to_write, int count, eCustomDataMask cddata_mask, ID *id)
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)
bool CustomData_has_interp(const CustomData *data)
void CustomData_bmesh_interp(CustomData *data, const void **src_blocks, const float *weights, const float *sub_weights, int count, void *dst_block)
const CustomData_MeshMasks CD_MASK_BAREMESH
int CustomData_get_stencil_layer_index(const CustomData *data, eCustomDataType type)
bool CustomData_layertype_is_dynamic(eCustomDataType type)
int CustomData_get_layer_index(const CustomData *data, eCustomDataType type)
void CustomData_bmesh_free_block_data_exclude_by_type(CustomData *data, void *block, eCustomDataMask mask_exclude)
void CustomData_set_layer_clone_index(CustomData *data, eCustomDataType type, int n)
void CustomData_init_from(const CustomData *source, CustomData *dest, eCustomDataMask mask, int totelem)
void CustomData_free(CustomData *data, int totelem)
void CustomData_set_layer_clone(CustomData *data, eCustomDataType type, int n)
void(*)(void *data, int count) cd_free
bool CustomData_merge(const CustomData *source, CustomData *dest, eCustomDataMask mask, int totelem)
bool CustomData_verify_versions(CustomData *data, int index)
bool CustomData_layer_validate(CustomDataLayer *layer, uint totitems, bool do_fixes)
void CustomData_data_copy_value(eCustomDataType type, const void *source, void *dest)
void CustomData_free_layers(CustomData *data, eCustomDataType type, int totelem)
void CustomData_free_typemask(CustomData *data, int totelem, eCustomDataMask mask)
const CustomData_MeshMasks CD_MASK_BMESH
void CustomData_update_typemap(CustomData *data)
void CustomData_external_add(CustomData *data, ID *id, eCustomDataType type, int totelem, const char *filepath)
void CustomData_blend_read(BlendDataReader *reader, CustomData *data, int count)
void CustomData_bmesh_set_default(CustomData *data, void **block)
void CustomData_bmesh_set_n(CustomData *data, void *block, eCustomDataType type, int n, const void *source)
void CustomData_set_layer_active_index(CustomData *data, eCustomDataType type, int n)
void CustomData_copy_layer_type_data(const CustomData *source, CustomData *destination, eCustomDataType type, int source_index, int destination_index, int count)
void CustomData_bmesh_copy_block(CustomData &data, void *src_block, void **dst_block)
void(*)(const void *source, void *dest, int count) cd_copy
const char * CustomData_get_render_layer_name(const CustomData *data, eCustomDataType type)
int CustomData_layertype_layers_max(eCustomDataType type)
bool CustomData_has_referenced(const CustomData *data)
void CustomData_data_dominmax(eCustomDataType type, const void *data, void *min, void *max)
bool(*)(void *item, uint totitems, bool do_fixes) cd_validate
void CustomData_file_write_info(eCustomDataType type, const char **r_struct_name, int *r_struct_num)
void CustomData_init_layout_from(const CustomData *source, CustomData *dest, eCustomDataMask mask, eCDAllocType alloctype, int totelem)
void CustomData_data_transfer(const MeshPairRemap *me_remap, const CustomDataTransferLayerMap *laymap)
int CustomData_get_active_layer(const CustomData *data, eCustomDataType type)
int CustomData_name_maxncpy_calc(blender::StringRef name)
void * CustomData_get_layer_for_write(CustomData *data, eCustomDataType type, int totelem)
void CustomData_data_multiply(eCustomDataType type, void *data, float fac)
CustomData CustomData_shallow_copy_remove_non_bmesh_attributes(const CustomData *src, eCustomDataMask mask)
void CustomData_set_layer_unique_name(CustomData *data, int index)
bool CustomData_bmesh_has_free(const CustomData *data)
void CustomData_free_elem(CustomData *data, int index, int count)
const void * CustomData_add_layer_with_data(CustomData *data, eCustomDataType type, void *layer_data, int totelem, const blender::ImplicitSharingInfo *sharing_info)
void CustomData_copy_data(const CustomData *source, CustomData *dest, int source_index, int dest_index, int count)
void CustomData_ensure_data_is_mutable(CustomDataLayer *layer, int totelem)
bool CustomData_has_layer(const CustomData *data, eCustomDataType type)
size_t CustomData_get_elem_size(const CustomDataLayer *layer)
void CustomData_ensure_layers_are_mutable(CustomData *data, int totelem)
void * CustomData_add_layer(CustomData *data, eCustomDataType type, eCDAllocType alloctype, int totelem)
bool CustomData_layertype_is_singleton(eCustomDataType type)
const CustomData_MeshMasks CD_MASK_DERIVEDMESH
bool CustomData_data_equals(eCustomDataType type, const void *data1, const void *data2)
bool CustomData_merge_layout(const CustomData *source, CustomData *dest, eCustomDataMask mask, eCDAllocType alloctype, int totelem)
int CustomData_get_active_layer_index(const CustomData *data, eCustomDataType type)
const char * CustomData_get_active_layer_name(const CustomData *data, eCustomDataType type)
int CustomData_get_render_layer(const CustomData *data, eCustomDataType type)
void CustomData_external_write(CustomData *data, ID *id, eCustomDataMask mask, int totelem, int free)
const void * CustomData_add_layer_named_with_data(CustomData *data, eCustomDataType type, void *layer_data, int totelem, blender::StringRef name, const blender::ImplicitSharingInfo *sharing_info)
void CustomData_external_reload(CustomData *data, ID *id, eCustomDataMask mask, int totelem)
void CustomData_data_add(eCustomDataType type, void *data1, const void *data2)
void CustomData_set_layer_stencil_index(CustomData *data, eCustomDataType type, int n)
int CustomData_number_of_layers(const CustomData *data, eCustomDataType type)
void CustomData_copy_data_named(const CustomData *source, CustomData *dest, int source_index, int dest_index, int count)
bool CustomData_external_test(CustomData *data, eCustomDataType type)
int CustomData_get_render_layer_index(const CustomData *data, eCustomDataType type)
bool CustomData_has_math(const CustomData *data)
void CustomData_bmesh_alloc_block(CustomData *data, void **block)
void CustomData_set_layer_active(CustomData *data, eCustomDataType type, int n)
void * CustomData_get_layer_n_for_write(CustomData *data, eCustomDataType type, int n, int totelem)
void CustomData_data_mix_value(eCustomDataType type, const void *source, void *dest, int mixmode, float mixfactor)
void * CustomData_bmesh_get_layer_n(const CustomData *data, void *block, int n)
const CustomData_MeshMasks CD_MASK_MESH
void CustomData_bmesh_free_block_data(CustomData *data, void *block)
void * CustomData_get_for_write(CustomData *data, int index, eCustomDataType type, int totelem)
int CustomData_get_clone_layer_index(const CustomData *data, eCustomDataType type)
void CustomData_set_layer_stencil(CustomData *data, eCustomDataType type, int n)
void CustomData_swap_corners(CustomData *data, int index, const int *corner_indices)
void CustomData_bmesh_interp_n(CustomData *data, const void **src_blocks, const float *weights, const float *sub_weights, int count, void *dst_block_ofs, int n)
void BLI_kdtree_nd_ free(KDTree *tree)
ATTR_WARN_UNUSED_RESULT BMesh * bm
std::optional< VolumeGridType > custom_data_type_to_volume_grid_type(eCustomDataType type)
std::optional< eCustomDataType > volume_grid_type_to_custom_data_type(VolumeGridType type)
unsigned __int64 uint64_t
blender::Vector< Free > free
blender::Vector< TrivialCopy > trivial_copies
blender::Vector< TrivialDefault > trivial_defaults
blender::Vector< Default > defaults
blender::Vector< Copy > copies
CustomDataTransferLayerMap * prev
const float * mix_weights
CustomDataTransferLayerMap * next
cd_datatransfer_interp interp