svn merge -r 16320:16369 https://svn.blender.org/svnroot/bf-blender/trunk/blender
[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 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.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL LICENSE BLOCK *****
30  */
31 #ifndef DNA_IPO_TYPES_H
32 #define DNA_IPO_TYPES_H
33
34 #include "DNA_listBase.h"
35 #include "DNA_vec_types.h"
36
37 #include "DNA_ID.h"
38
39 /* IPO Data-Block */
40 typedef struct Ipo {
41         ID id;
42         
43         ListBase curve;                         /* A list of IpoCurve structs in a linked list. */
44         rctf cur;                                       /* Rect defining extents of keyframes? */
45         
46         short blocktype, showkey;       /* blocktype: self-explanatory; showkey: either 0 or 1 (show vertical yellow lines for editing) */
47         short muteipo, pad;                     /* muteipo: either 0 or 1 (whether ipo block is muted) */       
48 } Ipo;
49
50 /* NOTE: IpoCurve struct is defined in DNA_curve_types.h, not in here... */
51
52 /* sometimes used */
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       30
70 #define OB_TOTNAM       30
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 #define OB_PD_FMAXD     30
108
109 /* exception: driver channel, for bone driver only */
110 #define OB_ROT_DIFF     100
111
112
113 /* ******************** */
114
115 #define MA_TOTIPO       40
116 #define MA_TOTNAM       26
117
118 #define MA_COL_R        1
119 #define MA_COL_G        2
120 #define MA_COL_B        3
121 #define MA_SPEC_R       4
122 #define MA_SPEC_G       5
123 #define MA_SPEC_B       6
124 #define MA_MIR_R        7
125 #define MA_MIR_G        8
126 #define MA_MIR_B        9
127 #define MA_REF          10
128 #define MA_ALPHA        11
129 #define MA_EMIT         12
130 #define MA_AMB          13
131 #define MA_SPEC         14
132 #define MA_HARD         15
133 #define MA_SPTR         16
134 #define MA_IOR          17
135 #define MA_MODE         18
136 #define MA_HASIZE       19
137 #define MA_TRANSLU      20
138 #define MA_RAYM         21
139 #define MA_FRESMIR      22
140 #define MA_FRESMIRI     23
141 #define MA_FRESTRA      24
142 #define MA_FRESTRAI     25
143 #define MA_ADD          26
144
145 #define MA_MAP1         1<<5
146 #define MA_MAP2         1<<6
147 #define MA_MAP3         1<<7
148 #define MA_MAP4         1<<8
149 #define MA_MAP5         1<<9
150 #define MA_MAP6         1<<10
151 #define MA_MAP7         1<<11
152 #define MA_MAP8         1<<12
153 #define MA_MAP9         1<<13
154 #define MA_MAP10        1<<14
155 #define MA_MAP11        1<<15
156 #define MA_MAP12        1<<16
157 #define MA_MAP13        1<<17
158 #define MA_MAP14        1<<18
159 #define MA_MAP15        1<<19
160 #define MA_MAP16        1<<20
161 #define MA_MAP17        1<<21
162 #define MA_MAP18        1<<22
163
164 #define TEX_TOTNAM      14
165
166 #define MAP_OFS_X       1
167 #define MAP_OFS_Y       2
168 #define MAP_OFS_Z       3
169 #define MAP_SIZE_X      4
170 #define MAP_SIZE_Y      5
171 #define MAP_SIZE_Z      6
172 #define MAP_R           7
173 #define MAP_G           8
174 #define MAP_B           9
175
176 #define MAP_DVAR        10
177 #define MAP_COLF        11
178 #define MAP_NORF        12
179 #define MAP_VARF        13
180 #define MAP_DISP        14
181
182 /* ******************** */
183
184 #define TE_TOTIPO       26
185 #define TE_TOTNAM       26
186
187 #define TE_NSIZE        1
188 #define TE_NDEPTH       2
189 #define TE_NTYPE        3
190 #define TE_TURB         4
191
192 #define TE_VNW1         5
193 #define TE_VNW2         6
194 #define TE_VNW3         7
195 #define TE_VNW4         8
196 #define TE_VNMEXP       9
197 #define TE_VN_DISTM     10
198 #define TE_VN_COLT      11
199
200 #define TE_ISCA         12
201 #define TE_DISTA        13
202
203 #define TE_MG_TYP       14
204 #define TE_MGH          15
205 #define TE_MG_LAC       16
206 #define TE_MG_OCT       17
207 #define TE_MG_OFF       18
208 #define TE_MG_GAIN      19
209
210 #define TE_N_BAS1       20
211 #define TE_N_BAS2       21
212
213 #define TE_COL_R    22
214 #define TE_COL_G    23
215 #define TE_COL_B    24
216 #define TE_BRIGHT       25
217 #define TE_CONTRA       26
218
219 /* ******************** */
220
221 #define SEQ_TOTIPO      1
222 #define SEQ_TOTNAM      1
223
224 #define SEQ_FAC1        1
225
226 /* ******************** */
227
228 #define CU_TOTIPO       1
229 #define CU_TOTNAM       1
230
231 #define CU_SPEED        1
232
233 /* ******************** */
234
235 #define KEY_TOTIPO      64
236 #define KEY_TOTNAM      64
237
238 #define KEY_SPEED       0
239 #define KEY_NR          1
240
241 /* ******************** */
242
243 #define WO_TOTIPO       29
244 #define WO_TOTNAM       16
245
246 #define WO_HOR_R        1
247 #define WO_HOR_G        2
248 #define WO_HOR_B        3
249 #define WO_ZEN_R        4
250 #define WO_ZEN_G        5
251 #define WO_ZEN_B        6
252
253 #define WO_EXPOS        7
254
255 #define WO_MISI         8
256 #define WO_MISTDI       9
257 #define WO_MISTSTA      10
258 #define WO_MISTHI       11
259
260 #define WO_STAR_R       12
261 #define WO_STAR_G       13
262 #define WO_STAR_B       14
263 #define WO_STARDIST     15
264 #define WO_STARSIZE     16
265
266 /* ******************** */
267
268 #define LA_TOTIPO       21
269 #define LA_TOTNAM       10
270
271 #define LA_ENERGY       1
272 #define LA_COL_R        2
273 #define LA_COL_G        3
274 #define LA_COL_B        4
275 #define LA_DIST         5
276 #define LA_SPOTSI       6
277 #define LA_SPOTBL       7
278 #define LA_QUAD1        8
279 #define LA_QUAD2        9
280 #define LA_HALOINT      10
281
282 /* ******************** */
283
284 /* yafray: totipo & totnam +2 because of added curves */
285 #define CAM_TOTIPO      7
286 #define CAM_TOTNAM      7
287
288 #define CAM_LENS        1
289 #define CAM_STA         2
290 #define CAM_END         3
291
292 /* yafray aperture & focal distance curves */
293 #define CAM_YF_APERT    4
294 #define CAM_YF_FDIST    5
295
296 #define CAM_SHIFT_X             6
297 #define CAM_SHIFT_Y             7
298
299 /* ******************** */
300
301 #define SND_TOTIPO      4
302 #define SND_TOTNAM      4
303
304 #define SND_VOLUME      1
305 #define SND_PITCH       2
306 #define SND_PANNING     3
307 #define SND_ATTEN       4
308
309 /* ******************** */
310
311 #define AC_TOTIPO       10      /* __NLA */
312 #define AC_TOTNAM       10
313
314 #define AC_LOC_X        1
315 #define AC_LOC_Y        2
316 #define AC_LOC_Z        3
317
318 #define AC_SIZE_X       13
319 #define AC_SIZE_Y       14
320 #define AC_SIZE_Z       15
321
322 #define AC_QUAT_W       25
323 #define AC_QUAT_X       26
324 #define AC_QUAT_Y       27
325 #define AC_QUAT_Z       28
326
327 /* ******************** */
328 #define CO_TOTIPO       2       /* Constraint Ipos */
329 #define CO_TOTNAM       2
330
331 #define CO_ENFORCE      1
332 #define CO_HEADTAIL     2
333 /*
334 #define CO_TIME         2
335 #define CO_OFFSET_X     3
336 #define CO_OFFSET_Y     4
337 #define CO_OFFSET_Z     5
338 #define CO_ORIENT_X     6
339 #define CO_ORIENT_Y     7
340 #define CO_ORIENT_Z     8
341 #define CO_ROLL         9
342 */
343
344 /* ******************** */
345 /* fluidsim ipos NT */
346
347 #define FLUIDSIM_TOTIPO 13
348 #define FLUIDSIM_TOTNAM 13
349
350 #define FLUIDSIM_VISC   1
351 #define FLUIDSIM_TIME   2
352
353 #define FLUIDSIM_GRAV_X 3
354 #define FLUIDSIM_GRAV_Y 4
355 #define FLUIDSIM_GRAV_Z 5
356
357 #define FLUIDSIM_VEL_X  6
358 #define FLUIDSIM_VEL_Y  7
359 #define FLUIDSIM_VEL_Z  8
360
361 #define FLUIDSIM_ACTIVE 9
362
363 #define FLUIDSIM_ATTR_FORCE_STR         10
364 #define FLUIDSIM_ATTR_FORCE_RADIUS      11
365 #define FLUIDSIM_VEL_FORCE_STR          12
366 #define FLUIDSIM_VEL_FORCE_RADIUS       13
367
368 /* ******************** */
369 /* particle ipos */
370 #define PART_TOTIPO             25
371 #define PART_TOTNAM             25
372
373 #define PART_EMIT_FREQ  1
374 #define PART_EMIT_LIFE  2
375 #define PART_EMIT_VEL   3
376 #define PART_EMIT_AVE   4
377 #define PART_EMIT_SIZE  5
378
379 #define PART_AVE                6
380 #define PART_SIZE               7
381 #define PART_DRAG               8
382 #define PART_BROWN              9
383 #define PART_DAMP               10
384 #define PART_LENGTH             11
385 #define PART_CLUMP              12
386
387 #define PART_GRAV_X             13
388 #define PART_GRAV_Y             14
389 #define PART_GRAV_Z             15
390
391 #define PART_KINK_AMP   16
392 #define PART_KINK_FREQ  17
393 #define PART_KINK_SHAPE 18
394
395 #define PART_BB_TILT    19
396
397 #define PART_PD_FSTR    20
398 #define PART_PD_FFALL   21
399 #define PART_PD_FMAXD   22
400
401 #define PART_PD2_FSTR   23
402 #define PART_PD2_FFALL  24
403 #define PART_PD2_FMAXD  25
404
405
406 /* these are IpoCurve specific */
407 /* **************** IPO ********************* */
408
409 /* icu->vartype */
410 #define IPO_CHAR                0
411 #define IPO_SHORT               1
412 #define IPO_INT                 2
413 #define IPO_LONG                3
414 #define IPO_FLOAT               4
415 #define IPO_DOUBLE              5
416 #define IPO_FLOAT_DEGR  6
417         /* very special case, in keys */
418 #define IPO_BEZTRIPLE   100
419 #define IPO_BPOINT              101
420
421 /* icu->vartype */
422 #define IPO_BITS                16
423 #define IPO_CHAR_BIT    16
424 #define IPO_SHORT_BIT   17
425 #define IPO_INT_BIT             18
426
427 /* icu->ipo:  the type of curve */
428 #define IPO_CONST               0
429 #define IPO_LIN                 1
430 #define IPO_BEZ                 2
431 #define IPO_MIXED               3 /* not used yet */
432
433 /* icu->extrap */
434 #define IPO_HORIZ               0
435 #define IPO_DIR                 1
436 #define IPO_CYCL                2
437 #define IPO_CYCLX               3
438
439 /* icu->flag */
440 #define IPO_VISIBLE             1
441 #define IPO_SELECT              2
442 #define IPO_EDIT                4
443 #define IPO_LOCK                8
444 #define IPO_AUTO_HORIZ  16
445 #define IPO_ACTIVE              32
446 #define IPO_PROTECT             64
447 #define IPO_MUTE                128
448
449 #endif
450
451
452