9321dce2ca3344273aa7e4d9807414ff7ee83831
[blender-staging.git] / source / blender / makesdna / DNA_ipo_types.h
1 /**
2  * blenlib/DNA_ipo_types.h (mar-2001 nzc)
3  *
4  * $Id$ 
5  *
6  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version. The Blender
12  * Foundation also sells licenses for use in proprietary software under
13  * the Blender License.  See http://www.blender.org/BL/ for information
14  * about this.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software Foundation,
23  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
24  *
25  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
26  * All rights reserved.
27  *
28  * The Original Code is: all of this file.
29  *
30  * Contributor(s): none yet.
31  *
32  * ***** END GPL/BL DUAL LICENSE BLOCK *****
33  */
34 #ifndef DNA_IPO_TYPES_H
35 #define DNA_IPO_TYPES_H
36
37 #include "DNA_listBase.h"
38 #include "DNA_vec_types.h"
39
40 #include "DNA_ID.h"
41
42 typedef struct Ipo {
43         ID id;
44         
45         ListBase curve;
46         rctf cur;
47         short blocktype, showkey;
48         short muteipo, pad;
49 } Ipo;
50
51 /* sometimes used */
52
53 typedef short IPO_Channel;  
54
55 /* defines: are these duped or new? */
56
57 #define IPOBUTY 17
58
59 #define TOB_IPO 1
60 #define TOB_IPODROT     2
61
62 /* disptype */
63 #define IPO_DISPDEGR    1
64 #define IPO_DISPBITS    2
65 #define IPO_DISPTIME    3
66
67 /* ******************** */
68
69 #define OB_TOTIPO       29
70 #define OB_TOTNAM       29
71
72 #define OB_LOC_X        1
73 #define OB_LOC_Y        2
74 #define OB_LOC_Z        3
75 #define OB_DLOC_X       4
76 #define OB_DLOC_Y       5
77 #define OB_DLOC_Z       6
78
79 #define OB_ROT_X        7
80 #define OB_ROT_Y        8
81 #define OB_ROT_Z        9
82 #define OB_DROT_X       10
83 #define OB_DROT_Y       11
84 #define OB_DROT_Z       12
85
86 #define OB_SIZE_X       13
87 #define OB_SIZE_Y       14
88 #define OB_SIZE_Z       15
89 #define OB_DSIZE_X      16
90 #define OB_DSIZE_Y      17
91 #define OB_DSIZE_Z      18
92
93 #define OB_LAY          19
94
95 #define OB_TIME         20
96
97 #define OB_COL_R        21
98 #define OB_COL_G        22
99 #define OB_COL_B        23
100 #define OB_COL_A        24
101
102 #define OB_PD_FSTR      25
103 #define OB_PD_FFALL     26
104 #define OB_PD_SDAMP     27
105 #define OB_PD_RDAMP     28
106 #define OB_PD_PERM      29
107
108
109
110 /* ******************** */
111
112 #define MA_TOTIPO       40
113 #define MA_TOTNAM       26
114
115 #define MA_COL_R        1
116 #define MA_COL_G        2
117 #define MA_COL_B        3
118 #define MA_SPEC_R       4
119 #define MA_SPEC_G       5
120 #define MA_SPEC_B       6
121 #define MA_MIR_R        7
122 #define MA_MIR_G        8
123 #define MA_MIR_B        9
124 #define MA_REF          10
125 #define MA_ALPHA        11
126 #define MA_EMIT         12
127 #define MA_AMB          13
128 #define MA_SPEC         14
129 #define MA_HARD         15
130 #define MA_SPTR         16
131 #define MA_IOR          17
132 #define MA_MODE         18
133 #define MA_HASIZE       19
134 #define MA_TRANSLU      20
135 #define MA_RAYM         21
136 #define MA_FRESMIR      22
137 #define MA_FRESMIRI     23
138 #define MA_FRESTRA      24
139 #define MA_FRESTRAI     25
140 #define MA_ADD          26
141
142 #define MA_MAP1         0x20
143 #define MA_MAP2         0x40
144 #define MA_MAP3         0x80
145 #define MA_MAP4         0x100
146 #define MA_MAP5         0x200
147 #define MA_MAP6         0x400
148 #define MA_MAP7         0x800
149 #define MA_MAP8         0x1000
150 #define MA_MAP9         0x2000
151 #define MA_MAP10        0x4000
152
153 #define TEX_TOTNAM      14
154
155 #define MAP_OFS_X       1
156 #define MAP_OFS_Y       2
157 #define MAP_OFS_Z       3
158 #define MAP_SIZE_X      4
159 #define MAP_SIZE_Y      5
160 #define MAP_SIZE_Z      6
161 #define MAP_R           7
162 #define MAP_G           8
163 #define MAP_B           9
164
165 #define MAP_DVAR        10
166 #define MAP_COLF        11
167 #define MAP_NORF        12
168 #define MAP_VARF        13
169 #define MAP_DISP        14
170
171 /* ******************** */
172
173 #define TE_TOTIPO       26
174 #define TE_TOTNAM       26
175
176 #define TE_NSIZE        1
177 #define TE_NDEPTH       2
178 #define TE_NTYPE        3
179 #define TE_TURB         4
180
181 #define TE_VNW1         5
182 #define TE_VNW2         6
183 #define TE_VNW3         7
184 #define TE_VNW4         8
185 #define TE_VNMEXP       9
186 #define TE_VN_DISTM     10
187 #define TE_VN_COLT      11
188
189 #define TE_ISCA         12
190 #define TE_DISTA        13
191
192 #define TE_MG_TYP       14
193 #define TE_MGH          15
194 #define TE_MG_LAC       16
195 #define TE_MG_OCT       17
196 #define TE_MG_OFF       18
197 #define TE_MG_GAIN      19
198
199 #define TE_N_BAS1       20
200 #define TE_N_BAS2       21
201
202 #define TE_COL_R    22
203 #define TE_COL_G    23
204 #define TE_COL_B    24
205 #define TE_BRIGHT       25
206 #define TE_CONTRA       26
207
208 /* ******************** */
209
210 #define SEQ_TOTIPO      1
211 #define SEQ_TOTNAM      1
212
213 #define SEQ_FAC1        1
214
215 /* ******************** */
216
217 #define CU_TOTIPO       1
218 #define CU_TOTNAM       1
219
220 #define CU_SPEED        1
221
222 /* ******************** */
223
224 #define KEY_TOTIPO      64
225 #define KEY_TOTNAM      64
226
227 #define KEY_SPEED       0
228 #define KEY_NR          1
229
230 /* ******************** */
231
232 #define WO_TOTIPO       29
233 #define WO_TOTNAM       16
234
235 #define WO_HOR_R        1
236 #define WO_HOR_G        2
237 #define WO_HOR_B        3
238 #define WO_ZEN_R        4
239 #define WO_ZEN_G        5
240 #define WO_ZEN_B        6
241
242 #define WO_EXPOS        7
243
244 #define WO_MISI         8
245 #define WO_MISTDI       9
246 #define WO_MISTSTA      10
247 #define WO_MISTHI       11
248
249 #define WO_STAR_R       12
250 #define WO_STAR_G       13
251 #define WO_STAR_B       14
252 #define WO_STARDIST     15
253 #define WO_STARSIZE     16
254
255 /* ******************** */
256
257 #define LA_TOTIPO       21
258 #define LA_TOTNAM       10
259
260 #define LA_ENERGY       1
261 #define LA_COL_R        2
262 #define LA_COL_G        3
263 #define LA_COL_B        4
264 #define LA_DIST         5
265 #define LA_SPOTSI       6
266 #define LA_SPOTBL       7
267 #define LA_QUAD1        8
268 #define LA_QUAD2        9
269 #define LA_HALOINT      10
270
271 /* ******************** */
272
273 /* yafray: totipo & totnam +2 because of added curves */
274 #define CAM_TOTIPO      7
275 #define CAM_TOTNAM      7
276
277 #define CAM_LENS        1
278 #define CAM_STA         2
279 #define CAM_END         3
280
281 /* yafray aperture & focal distance curves */
282 #define CAM_YF_APERT    4
283 #define CAM_YF_FDIST    5
284
285 #define CAM_SHIFT_X             6
286 #define CAM_SHIFT_Y             7
287
288 /* ******************** */
289
290 #define SND_TOTIPO      4
291 #define SND_TOTNAM      4
292
293 #define SND_VOLUME      1
294 #define SND_PITCH       2
295 #define SND_PANNING     3
296 #define SND_ATTEN       4
297
298 /* ******************** */
299
300 #define AC_TOTIPO       10      /* __NLA */
301 #define AC_TOTNAM       10
302
303 #define AC_LOC_X        1
304 #define AC_LOC_Y        2
305 #define AC_LOC_Z        3
306
307 #define AC_SIZE_X       13
308 #define AC_SIZE_Y       14
309 #define AC_SIZE_Z       15
310
311 #define AC_QUAT_W       25
312 #define AC_QUAT_X       26
313 #define AC_QUAT_Y       27
314 #define AC_QUAT_Z       28
315
316 /* ******************** */
317 #define CO_TOTIPO       1       /* Constraint Ipos */
318 #define CO_TOTNAM       1
319
320 #define CO_ENFORCE      1
321 /*
322 #define CO_TIME         2
323 #define CO_OFFSET_X     3
324 #define CO_OFFSET_Y     4
325 #define CO_OFFSET_Z     5
326 #define CO_ORIENT_X     6
327 #define CO_ORIENT_Y     7
328 #define CO_ORIENT_Z     8
329 #define CO_ROLL         9
330 */
331
332 /* ******************** */
333 /* fluidsim ipos NT */
334
335 #define FLUIDSIM_TOTIPO 9
336 #define FLUIDSIM_TOTNAM 9
337
338 #define FLUIDSIM_VISC   1
339 #define FLUIDSIM_TIME   2
340
341 #define FLUIDSIM_GRAV_X 3
342 #define FLUIDSIM_GRAV_Y 4
343 #define FLUIDSIM_GRAV_Z 5
344
345 #define FLUIDSIM_VEL_X  6
346 #define FLUIDSIM_VEL_Y  7
347 #define FLUIDSIM_VEL_Z  8
348
349 #define FLUIDSIM_ACTIVE 9
350
351
352 /* these are IpoCurve specific */
353 /* **************** IPO ********************* */
354
355 /* icu->vartype */
356 #define IPO_CHAR                0
357 #define IPO_SHORT               1
358 #define IPO_INT                 2
359 #define IPO_LONG                3
360 #define IPO_FLOAT               4
361 #define IPO_DOUBLE              5
362 #define IPO_FLOAT_DEGR  6
363         /* very special case, in keys */
364 #define IPO_BEZTRIPLE   100
365 #define IPO_BPOINT              101
366
367 /* icu->vartype */
368 #define IPO_BITS                16
369 #define IPO_CHAR_BIT    16
370 #define IPO_SHORT_BIT   17
371 #define IPO_INT_BIT             18
372
373 /* icu->ipo:  the type of curve */
374 #define IPO_CONST               0
375 #define IPO_LIN                 1
376 #define IPO_BEZ                 2
377 #define IPO_MIXED               3 /* not used yet */
378
379 /* icu->extrap */
380 #define IPO_HORIZ               0
381 #define IPO_DIR                 1
382 #define IPO_CYCL                2
383 #define IPO_CYCLX               3
384
385 /* icu->flag */
386 #define IPO_VISIBLE             1
387 #define IPO_SELECT              2
388 #define IPO_EDIT                4
389 #define IPO_LOCK                8
390 #define IPO_AUTO_HORIZ  16
391 #define IPO_ACTIVE              32
392 #define IPO_PROTECT             64
393 #define IPO_MUTE                128
394
395 #endif
396