Blender V4.3
DNA_customdata_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
11#pragma once
12
13#include "DNA_defs.h"
14
16
46
47#define MAX_CUSTOMDATA_LAYER_NAME 68
48#define MAX_CUSTOMDATA_LAYER_NAME_NO_PREFIX 64
49
54
85
87typedef enum eCustomDataType {
93
94#ifdef DNA_DEPRECATED_ALLOW
95 CD_MVERT = 0,
96 CD_MSTICKY = 1,
97#endif
98 CD_MDEFORMVERT = 2, /* Array of #MDeformVert. */
99#ifdef DNA_DEPRECATED_ALLOW
100 CD_MEDGE = 3,
101#endif
111#ifdef DNA_DEPRECATED_ALLOW
112 CD_FACEMAP = 9,
113#endif
117 CD_ORIGSPACE = 13, /* for modifier stack face location mapping */
118 CD_ORCO = 14, /* undeformed vertex coordinates, normalized to 0..1 range */
119#ifdef DNA_DEPRECATED_ALLOW
120 CD_MTEXPOLY = 15,
121 CD_MLOOPUV = 16,
122#endif
127 /* CD_ID_MCOL = 21, */
128 /* CD_TEXTURE_MLOOPCOL = 22, */ /* UNUSED */
130/* CD_RECAST = 24, */ /* UNUSED */
131
132#ifdef DNA_DEPRECATED_ALLOW
133 CD_MPOLY = 25,
134 CD_MLOOP = 26,
135#endif
138#ifdef DNA_DEPRECATED_ALLOW
139 CD_BWEIGHT = 29,
140 CD_CREASE = 30,
141#endif
143 /* CD_PREVIEW_MLOOPCOL = 32, */ /* UNUSED */
145
146#ifdef DNA_DEPRECATED_ALLOW
147 CD_PAINT_MASK = 34,
148#endif
156#ifdef DNA_DEPRECATED_ALLOW
157 CD_SCULPT_FACE_SETS = 42,
158#endif
159
160 /* CD_LOCATION = 43, */ /* UNUSED */
161 /* CD_RADIUS = 44, */ /* UNUSED */
163 /* Two 32-bit signed integers. */
165
170
171 /* CD_HAIRLENGTH = 51, */ /* UNUSED */
172
174
177
178#ifdef __cplusplus
179using eCustomDataMask = uint64_t;
180#endif
181
182/* Bits for eCustomDataMask */
183#define CD_MASK_MDEFORMVERT (1 << CD_MDEFORMVERT)
184#define CD_MASK_MFACE (1 << CD_MFACE)
185#define CD_MASK_MTFACE (1 << CD_MTFACE)
186#define CD_MASK_MCOL (1 << CD_MCOL)
187#define CD_MASK_ORIGINDEX (1 << CD_ORIGINDEX)
188#define CD_MASK_NORMAL (1 << CD_NORMAL)
189#define CD_MASK_PROP_FLOAT (1 << CD_PROP_FLOAT)
190#define CD_MASK_PROP_INT32 (1 << CD_PROP_INT32)
191#define CD_MASK_PROP_STRING (1 << CD_PROP_STRING)
192#define CD_MASK_ORIGSPACE (1 << CD_ORIGSPACE)
193#define CD_MASK_ORCO (1 << CD_ORCO)
194#define CD_MASK_PROP_BYTE_COLOR (1 << CD_PROP_BYTE_COLOR)
195#define CD_MASK_TANGENT (1 << CD_TANGENT)
196#define CD_MASK_MDISPS (1 << CD_MDISPS)
197#define CD_MASK_CLOTH_ORCO (1 << CD_CLOTH_ORCO)
198
199#define CD_MASK_SHAPE_KEYINDEX (1 << CD_SHAPE_KEYINDEX)
200#define CD_MASK_SHAPEKEY (1 << CD_SHAPEKEY)
201#define CD_MASK_ORIGSPACE_MLOOP (1LL << CD_ORIGSPACE_MLOOP)
202#define CD_MASK_BM_ELEM_PYPTR (1LL << CD_BM_ELEM_PYPTR)
203
204#define CD_MASK_GRID_PAINT_MASK (1LL << CD_GRID_PAINT_MASK)
205#define CD_MASK_MVERT_SKIN (1LL << CD_MVERT_SKIN)
206#define CD_MASK_FREESTYLE_EDGE (1LL << CD_FREESTYLE_EDGE)
207#define CD_MASK_FREESTYLE_FACE (1LL << CD_FREESTYLE_FACE)
208#define CD_MASK_MLOOPTANGENT (1LL << CD_MLOOPTANGENT)
209#define CD_MASK_TESSLOOPNORMAL (1LL << CD_TESSLOOPNORMAL)
210#define CD_MASK_CUSTOMLOOPNORMAL (1LL << CD_CUSTOMLOOPNORMAL)
211#define CD_MASK_PROP_COLOR (1ULL << CD_PROP_COLOR)
212#define CD_MASK_PROP_FLOAT3 (1ULL << CD_PROP_FLOAT3)
213#define CD_MASK_PROP_FLOAT2 (1ULL << CD_PROP_FLOAT2)
214#define CD_MASK_PROP_BOOL (1ULL << CD_PROP_BOOL)
215#define CD_MASK_PROP_INT8 (1ULL << CD_PROP_INT8)
216#define CD_MASK_PROP_INT32_2D (1ULL << CD_PROP_INT32_2D)
217#define CD_MASK_PROP_QUATERNION (1ULL << CD_PROP_QUATERNION)
218#define CD_MASK_PROP_FLOAT4X4 (1ULL << CD_PROP_FLOAT4X4)
219
221#define CD_MASK_MULTIRES_GRIDS (CD_MASK_MDISPS | CD_GRID_PAINT_MASK)
222
223/* All data layers. */
224#define CD_MASK_ALL (~0LL)
225
226/* All generic attributes. */
227#define CD_MASK_PROP_ALL \
228 (CD_MASK_PROP_FLOAT | CD_MASK_PROP_FLOAT2 | CD_MASK_PROP_FLOAT3 | CD_MASK_PROP_INT32 | \
229 CD_MASK_PROP_COLOR | CD_MASK_PROP_STRING | CD_MASK_PROP_BYTE_COLOR | CD_MASK_PROP_BOOL | \
230 CD_MASK_PROP_INT8 | CD_MASK_PROP_INT32_2D | CD_MASK_PROP_QUATERNION | CD_MASK_PROP_FLOAT4X4)
231
232/* All color attributes */
233#define CD_MASK_COLOR_ALL (CD_MASK_PROP_COLOR | CD_MASK_PROP_BYTE_COLOR)
234
242
244enum {
245 /* Indicates layer should not be copied by CustomData_from_template or CustomData_copy_data */
246 CD_FLAG_NOCOPY = (1 << 0),
247 CD_FLAG_UNUSED = (1 << 1),
248 /* Indicates the layer is only temporary, also implies no copy */
250 /* Indicates the layer is stored in an external file */
252 /* Indicates external data is read into memory */
254#ifdef DNA_DEPRECATED_ALLOW
255 CD_FLAG_COLOR_ACTIVE = (1 << 5),
256 CD_FLAG_COLOR_RENDER = (1 << 6)
257#endif
258};
259
260/* Limits */
261#define MAX_MTFACE 8
262
263#define DYNTOPO_NODE_NONE -1
struct ImplicitSharingInfoHandle ImplicitSharingInfoHandle
struct CustomDataLayer CustomDataLayer
struct CustomDataExternal CustomDataExternal
@ CD_FLAG_UNUSED
@ CD_FLAG_NOCOPY
@ CD_FLAG_IN_MEMORY
@ CD_FLAG_TEMPORARY
@ CD_FLAG_EXTERNAL
struct CustomData_MeshMasks CustomData_MeshMasks
@ CD_PROP_BYTE_COLOR
@ CD_MLOOPTANGENT
@ CD_MVERT_SKIN
@ CD_PROP_FLOAT
@ CD_CUSTOMLOOPNORMAL
@ CD_TESSLOOPNORMAL
@ CD_PROP_FLOAT3
@ CD_PROP_INT32_2D
@ CD_MDEFORMVERT
@ CD_PROP_COLOR
@ CD_PROP_QUATERNION
@ CD_BM_ELEM_PYPTR
@ CD_PROP_INT32
@ CD_PROP_FLOAT2
@ CD_ORIGSPACE_MLOOP
@ CD_FREESTYLE_EDGE
@ CD_FREESTYLE_FACE
@ CD_GRID_PAINT_MASK
@ CD_CLOTH_ORCO
@ CD_PROP_STRING
@ CD_PROP_FLOAT4X4
@ CD_AUTO_FROM_NAME
@ CD_SHAPE_KEYINDEX
struct CustomData CustomData
unsigned __int64 uint64_t
Definition stdint.h:90
const ImplicitSharingInfoHandle * sharing_info
struct BLI_mempool * pool
CustomDataLayer * layers
CustomDataExternal * external