Blender V4.3
DNA_customdata_types.h File Reference
#include "DNA_defs.h"
#include "BLI_implicit_sharing.h"

Go to the source code of this file.

Classes

struct  CustomDataLayer
 
struct  CustomDataExternal
 
struct  CustomData
 
struct  CustomData_MeshMasks
 

Macros

#define MAX_CUSTOMDATA_LAYER_NAME   68
 
#define MAX_CUSTOMDATA_LAYER_NAME_NO_PREFIX   64
 
#define CD_MASK_MDEFORMVERT   (1 << CD_MDEFORMVERT)
 
#define CD_MASK_MFACE   (1 << CD_MFACE)
 
#define CD_MASK_MTFACE   (1 << CD_MTFACE)
 
#define CD_MASK_MCOL   (1 << CD_MCOL)
 
#define CD_MASK_ORIGINDEX   (1 << CD_ORIGINDEX)
 
#define CD_MASK_NORMAL   (1 << CD_NORMAL)
 
#define CD_MASK_PROP_FLOAT   (1 << CD_PROP_FLOAT)
 
#define CD_MASK_PROP_INT32   (1 << CD_PROP_INT32)
 
#define CD_MASK_PROP_STRING   (1 << CD_PROP_STRING)
 
#define CD_MASK_ORIGSPACE   (1 << CD_ORIGSPACE)
 
#define CD_MASK_ORCO   (1 << CD_ORCO)
 
#define CD_MASK_PROP_BYTE_COLOR   (1 << CD_PROP_BYTE_COLOR)
 
#define CD_MASK_TANGENT   (1 << CD_TANGENT)
 
#define CD_MASK_MDISPS   (1 << CD_MDISPS)
 
#define CD_MASK_CLOTH_ORCO   (1 << CD_CLOTH_ORCO)
 
#define CD_MASK_SHAPE_KEYINDEX   (1 << CD_SHAPE_KEYINDEX)
 
#define CD_MASK_SHAPEKEY   (1 << CD_SHAPEKEY)
 
#define CD_MASK_ORIGSPACE_MLOOP   (1LL << CD_ORIGSPACE_MLOOP)
 
#define CD_MASK_BM_ELEM_PYPTR   (1LL << CD_BM_ELEM_PYPTR)
 
#define CD_MASK_GRID_PAINT_MASK   (1LL << CD_GRID_PAINT_MASK)
 
#define CD_MASK_MVERT_SKIN   (1LL << CD_MVERT_SKIN)
 
#define CD_MASK_FREESTYLE_EDGE   (1LL << CD_FREESTYLE_EDGE)
 
#define CD_MASK_FREESTYLE_FACE   (1LL << CD_FREESTYLE_FACE)
 
#define CD_MASK_MLOOPTANGENT   (1LL << CD_MLOOPTANGENT)
 
#define CD_MASK_TESSLOOPNORMAL   (1LL << CD_TESSLOOPNORMAL)
 
#define CD_MASK_CUSTOMLOOPNORMAL   (1LL << CD_CUSTOMLOOPNORMAL)
 
#define CD_MASK_PROP_COLOR   (1ULL << CD_PROP_COLOR)
 
#define CD_MASK_PROP_FLOAT3   (1ULL << CD_PROP_FLOAT3)
 
#define CD_MASK_PROP_FLOAT2   (1ULL << CD_PROP_FLOAT2)
 
#define CD_MASK_PROP_BOOL   (1ULL << CD_PROP_BOOL)
 
#define CD_MASK_PROP_INT8   (1ULL << CD_PROP_INT8)
 
#define CD_MASK_PROP_INT32_2D   (1ULL << CD_PROP_INT32_2D)
 
#define CD_MASK_PROP_QUATERNION   (1ULL << CD_PROP_QUATERNION)
 
#define CD_MASK_PROP_FLOAT4X4   (1ULL << CD_PROP_FLOAT4X4)
 
#define CD_MASK_MULTIRES_GRIDS   (CD_MASK_MDISPS | CD_GRID_PAINT_MASK)
 
#define CD_MASK_ALL   (~0LL)
 
#define CD_MASK_PROP_ALL
 
#define CD_MASK_COLOR_ALL   (CD_MASK_PROP_COLOR | CD_MASK_PROP_BYTE_COLOR)
 
#define MAX_MTFACE   8
 
#define DYNTOPO_NODE_NONE   -1
 

Typedefs

typedef struct CustomDataLayer CustomDataLayer
 
typedef struct CustomDataExternal CustomDataExternal
 
typedef struct CustomData CustomData
 
typedef enum eCustomDataType eCustomDataType
 
typedef struct CustomData_MeshMasks CustomData_MeshMasks
 

Enumerations

enum  eCustomDataType {
  CD_AUTO_FROM_NAME = -1 , CD_MDEFORMVERT = 2 , CD_MFACE = 4 , CD_MTFACE = 5 ,
  CD_MCOL = 6 , CD_ORIGINDEX = 7 , CD_NORMAL = 8 , CD_PROP_FLOAT = 10 ,
  CD_PROP_INT32 = 11 , CD_PROP_STRING = 12 , CD_ORIGSPACE = 13 , CD_ORCO = 14 ,
  CD_PROP_BYTE_COLOR = 17 , CD_TANGENT = 18 , CD_MDISPS = 19 , CD_PROP_FLOAT4X4 = 20 ,
  CD_CLOTH_ORCO = 23 , CD_SHAPE_KEYINDEX = 27 , CD_SHAPEKEY = 28 , CD_ORIGSPACE_MLOOP = 31 ,
  CD_BM_ELEM_PYPTR = 33 , CD_GRID_PAINT_MASK = 35 , CD_MVERT_SKIN = 36 , CD_FREESTYLE_EDGE = 37 ,
  CD_FREESTYLE_FACE = 38 , CD_MLOOPTANGENT = 39 , CD_TESSLOOPNORMAL = 40 , CD_CUSTOMLOOPNORMAL = 41 ,
  CD_PROP_INT8 = 45 , CD_PROP_INT32_2D = 46 , CD_PROP_COLOR = 47 , CD_PROP_FLOAT3 = 48 ,
  CD_PROP_FLOAT2 = 49 , CD_PROP_BOOL = 50 , CD_PROP_QUATERNION = 52 , CD_NUMTYPES = 53
}
 
enum  {
  CD_FLAG_NOCOPY = (1 << 0) , CD_FLAG_UNUSED = (1 << 1) , CD_FLAG_TEMPORARY = ((1 << 2) | CD_FLAG_NOCOPY) , CD_FLAG_EXTERNAL = (1 << 3) ,
  CD_FLAG_IN_MEMORY = (1 << 4)
}
 

Detailed Description

Used for custom mesh data types (stored per vert/edge/loop/face)

Definition in file DNA_customdata_types.h.

Macro Definition Documentation

◆ CD_MASK_ALL

◆ CD_MASK_BM_ELEM_PYPTR

#define CD_MASK_BM_ELEM_PYPTR   (1LL << CD_BM_ELEM_PYPTR)

Definition at line 202 of file DNA_customdata_types.h.

Referenced by bpy_bm_elem_copy_from().

◆ CD_MASK_CLOTH_ORCO

#define CD_MASK_CLOTH_ORCO   (1 << CD_CLOTH_ORCO)

◆ CD_MASK_COLOR_ALL

◆ CD_MASK_CUSTOMLOOPNORMAL

◆ CD_MASK_FREESTYLE_EDGE

#define CD_MASK_FREESTYLE_EDGE   (1LL << CD_FREESTYLE_EDGE)

Definition at line 206 of file DNA_customdata_types.h.

Referenced by BKE_object_handle_data_update().

◆ CD_MASK_FREESTYLE_FACE

#define CD_MASK_FREESTYLE_FACE   (1LL << CD_FREESTYLE_FACE)

Definition at line 207 of file DNA_customdata_types.h.

Referenced by BKE_object_handle_data_update().

◆ CD_MASK_GRID_PAINT_MASK

#define CD_MASK_GRID_PAINT_MASK   (1LL << CD_GRID_PAINT_MASK)

Definition at line 204 of file DNA_customdata_types.h.

◆ CD_MASK_MCOL

#define CD_MASK_MCOL   (1 << CD_MCOL)

Definition at line 186 of file DNA_customdata_types.h.

Referenced by pointdensity_cache_object().

◆ CD_MASK_MDEFORMVERT

◆ CD_MASK_MDISPS

◆ CD_MASK_MFACE

#define CD_MASK_MFACE   (1 << CD_MFACE)

Definition at line 184 of file DNA_customdata_types.h.

◆ CD_MASK_MLOOPTANGENT

#define CD_MASK_MLOOPTANGENT   (1LL << CD_MLOOPTANGENT)

Definition at line 208 of file DNA_customdata_types.h.

◆ CD_MASK_MTFACE

◆ CD_MASK_MULTIRES_GRIDS

#define CD_MASK_MULTIRES_GRIDS   (CD_MASK_MDISPS | CD_GRID_PAINT_MASK)

Multi-resolution loop data.

Definition at line 221 of file DNA_customdata_types.h.

◆ CD_MASK_MVERT_SKIN

#define CD_MASK_MVERT_SKIN   (1LL << CD_MVERT_SKIN)

◆ CD_MASK_NORMAL

#define CD_MASK_NORMAL   (1 << CD_NORMAL)

Definition at line 188 of file DNA_customdata_types.h.

Referenced by triangulate_mesh().

◆ CD_MASK_ORCO

◆ CD_MASK_ORIGINDEX

◆ CD_MASK_ORIGSPACE

#define CD_MASK_ORIGSPACE   (1 << CD_ORIGSPACE)

Definition at line 192 of file DNA_customdata_types.h.

◆ CD_MASK_ORIGSPACE_MLOOP

◆ CD_MASK_PROP_ALL

#define CD_MASK_PROP_ALL
Value:

Definition at line 227 of file DNA_customdata_types.h.

Referenced by attribute_type_supports_viewer_overlay(), BKE_attribute_duplicate(), BKE_attribute_rename(), bke_attribute_rename_if_exists(), BKE_attributes_active_get(), BKE_attributes_active_set(), BKE_mesh_to_pointcloud(), BKE_object_handle_data_update(), BKE_pointcloud_to_mesh(), cd_layer_find_dupe(), blender::ed::sculpt_paint::dyntopo::dyntopo_supports_layer(), blender::required_data_mask(), and blender::ed::sculpt_paint::undo::set_active_layer().

◆ CD_MASK_PROP_BOOL

#define CD_MASK_PROP_BOOL   (1ULL << CD_PROP_BOOL)

Definition at line 214 of file DNA_customdata_types.h.

◆ CD_MASK_PROP_BYTE_COLOR

◆ CD_MASK_PROP_COLOR

◆ CD_MASK_PROP_FLOAT

#define CD_MASK_PROP_FLOAT   (1 << CD_PROP_FLOAT)

Definition at line 189 of file DNA_customdata_types.h.

◆ CD_MASK_PROP_FLOAT2

◆ CD_MASK_PROP_FLOAT3

#define CD_MASK_PROP_FLOAT3   (1ULL << CD_PROP_FLOAT3)

Definition at line 212 of file DNA_customdata_types.h.

◆ CD_MASK_PROP_FLOAT4X4

#define CD_MASK_PROP_FLOAT4X4   (1ULL << CD_PROP_FLOAT4X4)

Definition at line 218 of file DNA_customdata_types.h.

Referenced by attribute_type_supports_viewer_overlay().

◆ CD_MASK_PROP_INT32

#define CD_MASK_PROP_INT32   (1 << CD_PROP_INT32)

Definition at line 190 of file DNA_customdata_types.h.

Referenced by required_data_mask().

◆ CD_MASK_PROP_INT32_2D

#define CD_MASK_PROP_INT32_2D   (1ULL << CD_PROP_INT32_2D)

Definition at line 216 of file DNA_customdata_types.h.

◆ CD_MASK_PROP_INT8

#define CD_MASK_PROP_INT8   (1ULL << CD_PROP_INT8)

Definition at line 215 of file DNA_customdata_types.h.

◆ CD_MASK_PROP_QUATERNION

#define CD_MASK_PROP_QUATERNION   (1ULL << CD_PROP_QUATERNION)

Definition at line 217 of file DNA_customdata_types.h.

Referenced by attribute_type_supports_viewer_overlay().

◆ CD_MASK_PROP_STRING

#define CD_MASK_PROP_STRING   (1 << CD_PROP_STRING)

Definition at line 191 of file DNA_customdata_types.h.

◆ CD_MASK_SHAPE_KEYINDEX

#define CD_MASK_SHAPE_KEYINDEX   (1 << CD_SHAPE_KEYINDEX)

Definition at line 199 of file DNA_customdata_types.h.

Referenced by undomesh_from_editmesh().

◆ CD_MASK_SHAPEKEY

#define CD_MASK_SHAPEKEY   (1 << CD_SHAPEKEY)

Definition at line 200 of file DNA_customdata_types.h.

Referenced by BKE_mesh_mirror_apply_mirror_on_axis().

◆ CD_MASK_TANGENT

#define CD_MASK_TANGENT   (1 << CD_TANGENT)

Definition at line 195 of file DNA_customdata_types.h.

◆ CD_MASK_TESSLOOPNORMAL

#define CD_MASK_TESSLOOPNORMAL   (1LL << CD_TESSLOOPNORMAL)

Definition at line 209 of file DNA_customdata_types.h.

◆ DYNTOPO_NODE_NONE

◆ MAX_CUSTOMDATA_LAYER_NAME

◆ MAX_CUSTOMDATA_LAYER_NAME_NO_PREFIX

◆ MAX_MTFACE

Typedef Documentation

◆ CustomData

typedef struct CustomData CustomData

CustomData stores an arbitrary number of typed data "layers" for multiple elements. The layers are typically geometry attributes, and the elements are typically geometry elements like vertices, edges, or curves.

Each layer has a type, often with certain semantics beyond the type of the raw data. However, a subset of the layer types are exposed as attributes and accessed with a higher level API built around #AttributeAccessor.

For BMesh, CustomData is adapted to store the data from all layers in a single "block" which is allocated for each element. Each layer's data is stored at a certain offset into every block's data.

◆ CustomData_MeshMasks

typedef struct CustomData_MeshMasks CustomData_MeshMasks

◆ CustomDataExternal

typedef struct CustomDataExternal CustomDataExternal

◆ CustomDataLayer

typedef struct CustomDataLayer CustomDataLayer

Descriptor and storage for a custom data layer.

◆ eCustomDataType

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

#CustomData.flag

Enumerator
CD_FLAG_NOCOPY 
CD_FLAG_UNUSED 
CD_FLAG_TEMPORARY 
CD_FLAG_EXTERNAL 
CD_FLAG_IN_MEMORY 

Definition at line 244 of file DNA_customdata_types.h.

◆ eCustomDataType

CustomDataLayer.type

Enumerator
CD_AUTO_FROM_NAME 

Used by GPU attributes in the cases when we don't know which layer we are addressing in advance.

CD_MDEFORMVERT 
CD_MFACE 
CD_MTFACE 
CD_MCOL 
CD_ORIGINDEX 
CD_NORMAL 

Used as temporary storage for some areas that support interpolating custom normals. Using a separate type from generic 3D vectors is a simple way of keeping values normalized.

CD_PROP_FLOAT 
CD_PROP_INT32 
CD_PROP_STRING 
CD_ORIGSPACE 
CD_ORCO 
CD_PROP_BYTE_COLOR 
CD_TANGENT 
CD_MDISPS 
CD_PROP_FLOAT4X4 
CD_CLOTH_ORCO 
CD_SHAPE_KEYINDEX 
CD_SHAPEKEY 
CD_ORIGSPACE_MLOOP 
CD_BM_ELEM_PYPTR 
CD_GRID_PAINT_MASK 
CD_MVERT_SKIN 
CD_FREESTYLE_EDGE 
CD_FREESTYLE_FACE 
CD_MLOOPTANGENT 
CD_TESSLOOPNORMAL 
CD_CUSTOMLOOPNORMAL 
CD_PROP_INT8 
CD_PROP_INT32_2D 
CD_PROP_COLOR 
CD_PROP_FLOAT3 
CD_PROP_FLOAT2 
CD_PROP_BOOL 
CD_PROP_QUATERNION 
CD_NUMTYPES 

Definition at line 87 of file DNA_customdata_types.h.