Blender V4.5
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
10
11#pragma once
12
13#include "DNA_defs.h"
14
16
18typedef struct CustomDataLayer {
20 int type;
22 int offset;
24 int flag;
26 int active;
34 int uid;
36 char name[/*MAX_CUSTOMDATA_LAYER_NAME*/ 68];
37 char _pad1[4];
39 void *data;
46
47#define MAX_CUSTOMDATA_LAYER_NAME 68
48#define MAX_CUSTOMDATA_LAYER_NAME_NO_PREFIX 64
49
50typedef struct CustomDataExternal {
51 char filepath[/*FILE_MAX*/ 1024];
53
84
86typedef enum eCustomDataType {
92
93#ifdef DNA_DEPRECATED_ALLOW
94 CD_MVERT = 0,
95 CD_MSTICKY = 1,
96#endif
97 CD_MDEFORMVERT = 2, /* Array of #MDeformVert. */
98#ifdef DNA_DEPRECATED_ALLOW
99 CD_MEDGE = 3,
100#endif
110#ifdef DNA_DEPRECATED_ALLOW
111 CD_FACEMAP = 9,
112#endif
116 CD_ORIGSPACE = 13, /* for modifier stack face location mapping */
117 CD_ORCO = 14, /* undeformed vertex coordinates, normalized to 0..1 range */
118#ifdef DNA_DEPRECATED_ALLOW
119 CD_MTEXPOLY = 15,
120 CD_MLOOPUV = 16,
121#endif
126 /* CD_ID_MCOL = 21, */
129/* CD_RECAST = 24, */ /* UNUSED */
130
131#ifdef DNA_DEPRECATED_ALLOW
132 CD_MPOLY = 25,
133 CD_MLOOP = 26,
134#endif
137#ifdef DNA_DEPRECATED_ALLOW
138 CD_BWEIGHT = 29,
139 CD_CREASE = 30,
140#endif
142 /* CD_PREVIEW_MLOOPCOL = 32, */ /* UNUSED */
144
145#ifdef DNA_DEPRECATED_ALLOW
146 CD_PAINT_MASK = 34,
147#endif
154#ifdef DNA_DEPRECATED_ALLOW
155 CD_CUSTOMLOOPNORMAL = 41,
156 CD_SCULPT_FACE_SETS = 42,
157#endif
158
159 /* CD_LOCATION = 43, */ /* UNUSED */
160 /* CD_RADIUS = 44, */ /* UNUSED */
162 /* Two 32-bit signed integers. */
164
169
170 /* CD_HAIRLENGTH = 51, */ /* UNUSED */
171
173
176
177#ifdef __cplusplus
178using eCustomDataMask = uint64_t;
179#endif
180
181/* Bits for eCustomDataMask */
182#define CD_MASK_MDEFORMVERT (1 << CD_MDEFORMVERT)
183#define CD_MASK_MFACE (1 << CD_MFACE)
184#define CD_MASK_MTFACE (1 << CD_MTFACE)
185#define CD_MASK_MCOL (1 << CD_MCOL)
186#define CD_MASK_ORIGINDEX (1 << CD_ORIGINDEX)
187#define CD_MASK_NORMAL (1 << CD_NORMAL)
188#define CD_MASK_PROP_FLOAT (1 << CD_PROP_FLOAT)
189#define CD_MASK_PROP_INT32 (1 << CD_PROP_INT32)
190#define CD_MASK_PROP_STRING (1 << CD_PROP_STRING)
191#define CD_MASK_ORIGSPACE (1 << CD_ORIGSPACE)
192#define CD_MASK_ORCO (1 << CD_ORCO)
193#define CD_MASK_PROP_BYTE_COLOR (1 << CD_PROP_BYTE_COLOR)
194#define CD_MASK_TANGENT (1 << CD_TANGENT)
195#define CD_MASK_MDISPS (1 << CD_MDISPS)
196#define CD_MASK_CLOTH_ORCO (1 << CD_CLOTH_ORCO)
197
198#define CD_MASK_SHAPE_KEYINDEX (1 << CD_SHAPE_KEYINDEX)
199#define CD_MASK_SHAPEKEY (1 << CD_SHAPEKEY)
200#define CD_MASK_ORIGSPACE_MLOOP (1LL << CD_ORIGSPACE_MLOOP)
201#define CD_MASK_BM_ELEM_PYPTR (1LL << CD_BM_ELEM_PYPTR)
202
203#define CD_MASK_GRID_PAINT_MASK (1LL << CD_GRID_PAINT_MASK)
204#define CD_MASK_MVERT_SKIN (1LL << CD_MVERT_SKIN)
205#define CD_MASK_FREESTYLE_EDGE (1LL << CD_FREESTYLE_EDGE)
206#define CD_MASK_FREESTYLE_FACE (1LL << CD_FREESTYLE_FACE)
207#define CD_MASK_MLOOPTANGENT (1LL << CD_MLOOPTANGENT)
208#define CD_MASK_TESSLOOPNORMAL (1LL << CD_TESSLOOPNORMAL)
209#define CD_MASK_PROP_COLOR (1ULL << CD_PROP_COLOR)
210#define CD_MASK_PROP_FLOAT3 (1ULL << CD_PROP_FLOAT3)
211#define CD_MASK_PROP_FLOAT2 (1ULL << CD_PROP_FLOAT2)
212#define CD_MASK_PROP_BOOL (1ULL << CD_PROP_BOOL)
213#define CD_MASK_PROP_INT8 (1ULL << CD_PROP_INT8)
214#define CD_MASK_PROP_INT16_2D (1ULL << CD_PROP_INT16_2D)
215#define CD_MASK_PROP_INT32_2D (1ULL << CD_PROP_INT32_2D)
216#define CD_MASK_PROP_QUATERNION (1ULL << CD_PROP_QUATERNION)
217#define CD_MASK_PROP_FLOAT4X4 (1ULL << CD_PROP_FLOAT4X4)
218
220#define CD_MASK_MULTIRES_GRIDS (CD_MASK_MDISPS | CD_GRID_PAINT_MASK)
221
222/* All data layers. */
223#define CD_MASK_ALL (~0LL)
224
225/* All generic attributes. */
226#define CD_MASK_PROP_ALL \
227 (CD_MASK_PROP_FLOAT | CD_MASK_PROP_FLOAT2 | CD_MASK_PROP_FLOAT3 | CD_MASK_PROP_INT32 | \
228 CD_MASK_PROP_COLOR | CD_MASK_PROP_STRING | CD_MASK_PROP_BYTE_COLOR | CD_MASK_PROP_BOOL | \
229 CD_MASK_PROP_INT8 | CD_MASK_PROP_INT16_2D | CD_MASK_PROP_INT32_2D | CD_MASK_PROP_QUATERNION | \
230 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 */
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
struct ImplicitSharingInfoHandle ImplicitSharingInfoHandle
@ CD_PROP_BYTE_COLOR
@ CD_MLOOPTANGENT
@ CD_MVERT_SKIN
@ CD_PROP_FLOAT
@ 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_PROP_INT16_2D
@ CD_CLOTH_ORCO
@ CD_PROP_STRING
@ CD_PROP_FLOAT4X4
@ CD_AUTO_FROM_NAME
@ CD_SHAPE_KEYINDEX
@ CD_FLAG_UNUSED
@ CD_FLAG_NOCOPY
@ CD_FLAG_IN_MEMORY
@ CD_FLAG_TEMPORARY
@ CD_FLAG_EXTERNAL
unsigned long long int uint64_t
const ImplicitSharingInfoHandle * sharing_info
struct BLI_mempool * pool
CustomDataLayer * layers
CustomDataExternal * external
#define DNA_DEPRECATED_ALLOW
Definition versioning.cc:11