LEFT | RIGHT |
1 /* | 1 /* |
2 * ***** BEGIN GPL LICENSE BLOCK ***** | 2 * ***** BEGIN GPL LICENSE BLOCK ***** |
3 * | 3 * |
4 * This program is free software; you can redistribute it and/or | 4 * This program is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU General Public License | 5 * modify it under the terms of the GNU General Public License |
6 * as published by the Free Software Foundation; either version 2 | 6 * as published by the Free Software Foundation; either version 2 |
7 * of the License, or (at your option) any later version. | 7 * of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 | 56 |
57 typedef struct CustomDataExternal { | 57 typedef struct CustomDataExternal { |
58 char filename[1024]; /* FILE_MAX */ | 58 char filename[1024]; /* FILE_MAX */ |
59 } CustomDataExternal; | 59 } CustomDataExternal; |
60 | 60 |
61 /** structure which stores custom element data associated with mesh elements | 61 /** structure which stores custom element data associated with mesh elements |
62 * (vertices, edges or faces). The custom data is organized into a series of | 62 * (vertices, edges or faces). The custom data is organized into a series of |
63 * layers, each with a data type (e.g. MTFace, MDeformVert, etc.). */ | 63 * layers, each with a data type (e.g. MTFace, MDeformVert, etc.). */ |
64 typedef struct CustomData { | 64 typedef struct CustomData { |
65 CustomDataLayer *layers; /* CustomDataLayers, ordered by type */ | 65 CustomDataLayer *layers; /* CustomDataLayers, ordered by type */ |
66 » int typemap[37]; /* runtime only! - maps types to indices o
f first layer of that type, | 66 » int typemap[36]; /* runtime only! - maps types to indices o
f first layer of that type, |
67 * MUST be >= CD_NUMTYPES, but we cant use
a define here. | 67 * MUST be >= CD_NUMTYPES, but we cant use
a define here. |
68 * Correct size is ensured in CustomData_u
pdate_typemap assert() */ | 68 * Correct size is ensured in CustomData_u
pdate_typemap assert() */ |
| 69 |
69 int totlayer, maxlayer; /* number of layers, size of layers array
*/ | 70 int totlayer, maxlayer; /* number of layers, size of layers array
*/ |
70 » int totsize; /* in editmode, total size of all data lay
ers */ | 71 » int totsize, pad2; /* in editmode, total size of all data la
yers */ |
71 void *pool; /* Bmesh: Memory pool for allocation of bl
ocks */ | 72 void *pool; /* Bmesh: Memory pool for allocation of bl
ocks */ |
72 CustomDataExternal *external; /* external file storing customdata layers
*/ | 73 CustomDataExternal *external; /* external file storing customdata layers
*/ |
73 } CustomData; | 74 } CustomData; |
74 | |
75 /* CustomData.type */ | |
76 #define CD_MVERT 0 | |
77 #define CD_MSTICKY 1 | |
78 #define CD_MDEFORMVERT 2 | |
79 #define CD_MEDGE 3 | |
80 #define CD_MFACE 4 | |
81 #define CD_MTFACE 5 | |
82 #define CD_MCOL 6 | |
83 #define CD_ORIGINDEX 7 | |
84 #define CD_NORMAL 8 | |
85 #define CD_POLYINDEX 9 | |
86 #define CD_PROP_FLT 10 | |
87 #define CD_PROP_INT 11 | |
88 #define CD_PROP_STR 12 | |
89 #define CD_ORIGSPACE 13 /* for modifier stack face location mapping */ | |
90 #define CD_ORCO 14 | |
91 #define CD_MTEXPOLY 15 | |
92 #define CD_MLOOPUV 16 | |
93 #define CD_MLOOPCOL 17 | |
94 #define CD_TANGENT 18 | |
95 #define CD_MDISPS 19 | |
96 #define CD_PREVIEW_MCOL 20 /* for displaying weightpaint colors */ | |
97 #define CD_ID_MCOL 21 | |
98 #define CD_TEXTURE_MCOL 22 | |
99 #define CD_CLOTH_ORCO 23 | |
100 #define CD_RECAST 24 | |
101 | |
102 /* BMESH ONLY START */ | |
103 #define CD_MPOLY 25 | |
104 #define CD_MLOOP 26 | |
105 #define CD_SHAPE_KEYINDEX 27 | |
106 #define CD_SHAPEKEY 28 | |
107 #define CD_BWEIGHT 29 | |
108 #define CD_CREASE 30 | |
109 #define CD_ORIGSPACE_MLOOP 31 | |
110 #define CD_PREVIEW_MLOOPCOL 32 | |
111 #define CD_BM_ELEM_PYPTR 33 | |
112 /* BMESH ONLY END */ | |
113 | |
114 #define CD_PAINT_MASK 34 | |
115 #define CD_GRID_PAINT_MASK 35 | |
116 #define CD_MVERT_SKIN 36 | |
117 #define CD_NUMTYPES 37 | |
118 | |
119 /* Bits for CustomDataMask */ | |
120 #define CD_MASK_MVERT (1 << CD_MVERT) | |
121 #define CD_MASK_MSTICKY (1 << CD_MSTICKY) | |
122 #define CD_MASK_MDEFORMVERT (1 << CD_MDEFORMVERT) | |
123 #define CD_MASK_MEDGE (1 << CD_MEDGE) | |
124 #define CD_MASK_MFACE (1 << CD_MFACE) | |
125 #define CD_MASK_MTFACE (1 << CD_MTFACE) | |
126 #define CD_MASK_MCOL (1 << CD_MCOL) | |
127 #define CD_MASK_ORIGINDEX (1 << CD_ORIGINDEX) | |
128 #define CD_MASK_NORMAL (1 << CD_NORMAL) | |
129 #define CD_MASK_POLYINDEX (1 << CD_POLYINDEX) | |
130 #define CD_MASK_PROP_FLT (1 << CD_PROP_FLT) | |
131 #define CD_MASK_PROP_INT (1 << CD_PROP_INT) | |
132 #define CD_MASK_PROP_STR (1 << CD_PROP_STR) | |
133 #define CD_MASK_ORIGSPACE (1 << CD_ORIGSPACE) | |
134 #define CD_MASK_ORCO (1 << CD_ORCO) | |
135 #define CD_MASK_MTEXPOLY (1 << CD_MTEXPOLY) | |
136 #define CD_MASK_MLOOPUV (1 << CD_MLOOPUV) | |
137 #define CD_MASK_MLOOPCOL (1 << CD_MLOOPCOL) | |
138 #define CD_MASK_TANGENT (1 << CD_TANGENT) | |
139 #define CD_MASK_MDISPS (1 << CD_MDISPS) | |
140 #define CD_MASK_PREVIEW_MCOL (1 << CD_PREVIEW_MCOL) | |
141 #define CD_MASK_CLOTH_ORCO (1 << CD_CLOTH_ORCO) | |
142 #define CD_MASK_RECAST (1 << CD_RECAST) | |
143 | |
144 /* BMESH ONLY START */ | |
145 #define CD_MASK_MPOLY (1 << CD_MPOLY) | |
146 #define CD_MASK_MLOOP (1 << CD_MLOOP) | |
147 #define CD_MASK_SHAPE_KEYINDEX (1 << CD_SHAPE_KEYINDEX) | |
148 #define CD_MASK_SHAPEKEY (1 << CD_SHAPEKEY) | |
149 #define CD_MASK_BWEIGHT (1 << CD_BWEIGHT) | |
150 #define CD_MASK_CREASE (1 << CD_CREASE) | |
151 #define CD_MASK_ORIGSPACE_MLOOP (1 << CD_ORIGSPACE_MLOOP) | |
152 #define CD_MASK_PREVIEW_MLOOPCOL (1LL << CD_PREVIEW_MLOOPCOL) | |
153 #define CD_MASK_BM_ELEM_PYPTR (1LL << CD_BM_ELEM_PYPTR) | |
154 /* BMESH ONLY END */ | |
155 | |
156 #define CD_MASK_PAINT_MASK (1LL << CD_PAINT_MASK) | |
157 #define CD_MASK_GRID_PAINT_MASK (1LL << CD_GRID_PAINT_MASK) | |
158 #define CD_MASK_MVERT_SKIN (1LL << CD_MVERT_SKIN) | |
159 | |
160 /* CustomData.flag */ | |
161 | |
162 /* indicates layer should not be copied by CustomData_from_template or | |
163 * CustomData_copy_data */ | |
164 #define CD_FLAG_NOCOPY (1<<0) | |
165 /* indicates layer should not be freed (for layers backed by external data) */ | |
166 #define CD_FLAG_NOFREE (1<<1) | |
167 /* indicates the layer is only temporary, also implies no copy */ | |
168 #define CD_FLAG_TEMPORARY ((1<<2)|CD_FLAG_NOCOPY) | |
169 /* indicates the layer is stored in an external file */ | |
170 #define CD_FLAG_EXTERNAL (1<<3) | |
171 /* indicates external data is read into memory */ | |
172 #define CD_FLAG_IN_MEMORY (1<<4) | |
173 | |
174 /* Limits */ | |
175 #define MAX_MTFACE 8 | |
176 #define MAX_MCOL 8 | |
177 | |
178 #ifdef __cplusplus | |
179 } | |
180 #endif | |
181 | |
182 #endif | |
LEFT | RIGHT |