Blender V5.0
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
130 /* CD_ID_MCOL = 21, */
133/* CD_RECAST = 24, */ /* UNUSED */
134
135#ifdef DNA_DEPRECATED_ALLOW
136 CD_MPOLY = 25,
137 CD_MLOOP = 26,
138#endif
141#ifdef DNA_DEPRECATED_ALLOW
142 CD_BWEIGHT = 29,
143 CD_CREASE = 30,
144#endif
146 /* CD_PREVIEW_MLOOPCOL = 32, */ /* UNUSED */
148
149#ifdef DNA_DEPRECATED_ALLOW
150 CD_PAINT_MASK = 34,
151#endif
154#ifdef DNA_DEPRECATED_ALLOW
155 CD_FREESTYLE_EDGE = 37,
156 CD_FREESTYLE_FACE = 38,
157#endif
160#ifdef DNA_DEPRECATED_ALLOW
161 CD_CUSTOMLOOPNORMAL = 41,
162 CD_SCULPT_FACE_SETS = 42,
163#endif
164
165 /* CD_LOCATION = 43, */ /* UNUSED */
166 /* CD_RADIUS = 44, */ /* UNUSED */
168 /* Two 32-bit signed integers. */
170
175
176 /* CD_HAIRLENGTH = 51, */ /* UNUSED */
177
179
182
183#ifdef __cplusplus
184using eCustomDataMask = uint64_t;
185#endif
186
187/* Bits for #eCustomDataMask */
188
189#define CD_MASK_MDEFORMVERT (1 << CD_MDEFORMVERT)
190#define CD_MASK_MFACE (1 << CD_MFACE)
191#define CD_MASK_MTFACE (1 << CD_MTFACE)
192#define CD_MASK_MCOL (1 << CD_MCOL)
193#define CD_MASK_ORIGINDEX (1 << CD_ORIGINDEX)
194#define CD_MASK_NORMAL (1 << CD_NORMAL)
195#define CD_MASK_PROP_FLOAT (1 << CD_PROP_FLOAT)
196#define CD_MASK_PROP_INT32 (1 << CD_PROP_INT32)
197#define CD_MASK_PROP_STRING (1 << CD_PROP_STRING)
198#define CD_MASK_ORIGSPACE (1 << CD_ORIGSPACE)
199#define CD_MASK_ORCO (1 << CD_ORCO)
200#define CD_MASK_PROP_BYTE_COLOR (1 << CD_PROP_BYTE_COLOR)
201#define CD_MASK_MDISPS (1 << CD_MDISPS)
202#define CD_MASK_CLOTH_ORCO (1 << CD_CLOTH_ORCO)
203
204#define CD_MASK_SHAPE_KEYINDEX (1 << CD_SHAPE_KEYINDEX)
205#define CD_MASK_SHAPEKEY (1 << CD_SHAPEKEY)
206#define CD_MASK_ORIGSPACE_MLOOP (1LL << CD_ORIGSPACE_MLOOP)
207#define CD_MASK_BM_ELEM_PYPTR (1LL << CD_BM_ELEM_PYPTR)
208
209#define CD_MASK_GRID_PAINT_MASK (1LL << CD_GRID_PAINT_MASK)
210#define CD_MASK_MVERT_SKIN (1LL << CD_MVERT_SKIN)
211#define CD_MASK_MLOOPTANGENT (1LL << CD_MLOOPTANGENT)
212#define CD_MASK_TESSLOOPNORMAL (1LL << CD_TESSLOOPNORMAL)
213#define CD_MASK_PROP_COLOR (1ULL << CD_PROP_COLOR)
214#define CD_MASK_PROP_FLOAT3 (1ULL << CD_PROP_FLOAT3)
215#define CD_MASK_PROP_FLOAT2 (1ULL << CD_PROP_FLOAT2)
216#define CD_MASK_PROP_BOOL (1ULL << CD_PROP_BOOL)
217#define CD_MASK_PROP_INT8 (1ULL << CD_PROP_INT8)
218#define CD_MASK_PROP_INT16_2D (1ULL << CD_PROP_INT16_2D)
219#define CD_MASK_PROP_INT32_2D (1ULL << CD_PROP_INT32_2D)
220#define CD_MASK_PROP_QUATERNION (1ULL << CD_PROP_QUATERNION)
221#define CD_MASK_PROP_FLOAT4X4 (1ULL << CD_PROP_FLOAT4X4)
222
224#define CD_MASK_MULTIRES_GRIDS (CD_MASK_MDISPS | CD_GRID_PAINT_MASK)
225
227#define CD_MASK_ALL (~0LL)
228
230#define CD_MASK_PROP_ALL \
231 (CD_MASK_PROP_FLOAT | CD_MASK_PROP_FLOAT2 | CD_MASK_PROP_FLOAT3 | CD_MASK_PROP_INT32 | \
232 CD_MASK_PROP_COLOR | CD_MASK_PROP_STRING | CD_MASK_PROP_BYTE_COLOR | CD_MASK_PROP_BOOL | \
233 CD_MASK_PROP_INT8 | CD_MASK_PROP_INT16_2D | CD_MASK_PROP_INT32_2D | CD_MASK_PROP_QUATERNION | \
234 CD_MASK_PROP_FLOAT4X4)
235
237#define CD_MASK_COLOR_ALL (CD_MASK_PROP_COLOR | CD_MASK_PROP_BYTE_COLOR)
238
246
248enum {
252 CD_FLAG_NOCOPY = (1 << 0),
253 CD_FLAG_UNUSED = (1 << 1),
261 CD_FLAG_COLOR_ACTIVE = (1 << 5),
262 CD_FLAG_COLOR_RENDER = (1 << 6)
263#endif
264};
265
267#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_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