svn merge -r 13452:14721 https://svn.blender.org/svnroot/bf-blender/trunk/blender
[blender.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         0x20
146 #define MA_MAP2         0x40
147 #define MA_MAP3         0x80
148 #define MA_MAP4         0x100
149 #define MA_MAP5         0x200
150 #define MA_MAP6         0x400
151 #define MA_MAP7         0x800
152 #define MA_MAP8         0x1000
153 #define MA_MAP9         0x2000
154 #define MA_MAP10        0x4000
155
156 #define TEX_TOTNAM      14
157
158 #define MAP_OFS_X       1
159 #define MAP_OFS_Y       2
160 #define MAP_OFS_Z       3
161 #define MAP_SIZE_X      4
162 #define MAP_SIZE_Y      5
163 #define MAP_SIZE_Z      6
164 #define MAP_R           7
165 #define MAP_G           8
166 #define MAP_B           9
167
168 #define MAP_DVAR        10
169 #define MAP_COLF        11
170 #define MAP_NORF        12
171 #define MAP_VARF        13
172 #define MAP_DISP        14
173
174 /* ******************** */
175
176 #define TE_TOTIPO       26
177 #define TE_TOTNAM       26
178
179 #define TE_NSIZE        1
180 #define TE_NDEPTH       2
181 #define TE_NTYPE        3
182 #define TE_TURB         4
183
184 #define TE_VNW1         5
185 #define TE_VNW2         6
186 #define TE_VNW3         7
187 #define TE_VNW4         8
188 #define TE_VNMEXP       9
189 #define TE_VN_DISTM     10
190 #define TE_VN_COLT      11
191
192 #define TE_ISCA         12
193 #define TE_DISTA        13
194
195 #define TE_MG_TYP       14
196 #define TE_MGH          15
197 #define TE_MG_LAC       16
198 #define TE_MG_OCT       17
199 #define TE_MG_OFF       18
200 #define TE_MG_GAIN      19
201
202 #define TE_N_BAS1       20
203 #define TE_N_BAS2       21
204
205 #define TE_COL_R    22
206 #define TE_COL_G    23
207 #define TE_COL_B    24
208 #define TE_BRIGHT       25
209 #define TE_CONTRA       26
210
211 /* ******************** */
212
213 #define SEQ_TOTIPO      1
214 #define SEQ_TOTNAM      1
215
216 #define SEQ_FAC1        1
217
218 /* ******************** */
219
220 #define CU_TOTIPO       1
221 #define CU_TOTNAM       1
222
223 #define CU_SPEED        1
224
225 /* ******************** */
226
227 #define KEY_TOTIPO      64
228 #define KEY_TOTNAM      64
229
230 #define KEY_SPEED       0
231 #define KEY_NR          1
232
233 /* ******************** */
234
235 #define WO_TOTIPO       29
236 #define WO_TOTNAM       16
237
238 #define WO_HOR_R        1
239 #define WO_HOR_G        2
240 #define WO_HOR_B        3
241 #define WO_ZEN_R        4
242 #define WO_ZEN_G        5
243 #define WO_ZEN_B        6
244
245 #define WO_EXPOS        7
246
247 #define WO_MISI         8
248 #define WO_MISTDI       9
249 #define WO_MISTSTA      10
250 #define WO_MISTHI       11
251
252 #define WO_STAR_R       12
253 #define WO_STAR_G       13
254 #define WO_STAR_B       14
255 #define WO_STARDIST     15
256 #define WO_STARSIZE     16
257
258 /* ******************** */
259
260 #define LA_TOTIPO       21
261 #define LA_TOTNAM       10
262
263 #define LA_ENERGY       1
264 #define LA_COL_R        2
265 #define LA_COL_G        3
266 #define LA_COL_B        4
267 #define LA_DIST         5
268 #define LA_SPOTSI       6
269 #define LA_SPOTBL       7
270 #define LA_QUAD1        8
271 #define LA_QUAD2        9
272 #define LA_HALOINT      10
273
274 /* ******************** */
275
276 /* yafray: totipo & totnam +2 because of added curves */
277 #define CAM_TOTIPO      7
278 #define CAM_TOTNAM      7
279
280 #define CAM_LENS        1
281 #define CAM_STA         2
282 #define CAM_END         3
283
284 /* yafray aperture & focal distance curves */
285 #define CAM_YF_APERT    4
286 #define CAM_YF_FDIST    5
287
288 #define CAM_SHIFT_X             6
289 #define CAM_SHIFT_Y             7
290
291 /* ******************** */
292
293 #define SND_TOTIPO      4
294 #define SND_TOTNAM      4
295
296 #define SND_VOLUME      1
297 #define SND_PITCH       2
298 #define SND_PANNING     3
299 #define SND_ATTEN       4
300
301 /* ******************** */
302
303 #define AC_TOTIPO       10      /* __NLA */
304 #define AC_TOTNAM       10
305
306 #define AC_LOC_X        1
307 #define AC_LOC_Y        2
308 #define AC_LOC_Z        3
309
310 #define AC_SIZE_X       13
311 #define AC_SIZE_Y       14
312 #define AC_SIZE_Z       15
313
314 #define AC_QUAT_W       25
315 #define AC_QUAT_X       26
316 #define AC_QUAT_Y       27
317 #define AC_QUAT_Z       28
318
319 /* ******************** */
320 #define CO_TOTIPO       2       /* Constraint Ipos */
321 #define CO_TOTNAM       2
322
323 #define CO_ENFORCE      1
324 #define CO_HEADTAIL     2
325 /*
326 #define CO_TIME         2
327 #define CO_OFFSET_X     3
328 #define CO_OFFSET_Y     4
329 #define CO_OFFSET_Z     5
330 #define CO_ORIENT_X     6
331 #define CO_ORIENT_Y     7
332 #define CO_ORIENT_Z     8
333 #define CO_ROLL         9
334 */
335
336 /* ******************** */
337 /* fluidsim ipos NT */
338
339 #define FLUIDSIM_TOTIPO 9
340 #define FLUIDSIM_TOTNAM 9
341
342 #define FLUIDSIM_VISC   1
343 #define FLUIDSIM_TIME   2
344
345 #define FLUIDSIM_GRAV_X 3
346 #define FLUIDSIM_GRAV_Y 4
347 #define FLUIDSIM_GRAV_Z 5
348
349 #define FLUIDSIM_VEL_X  6
350 #define FLUIDSIM_VEL_Y  7
351 #define FLUIDSIM_VEL_Z  8
352
353 #define FLUIDSIM_ACTIVE 9
354
355 /* ******************** */
356 /* particle ipos */
357 #define PART_TOTIPO             19
358 #define PART_TOTNAM             19
359
360 #define PART_EMIT_FREQ  1
361 #define PART_EMIT_LIFE  2
362 #define PART_EMIT_VEL   3
363 #define PART_EMIT_AVE   4
364 #define PART_EMIT_SIZE  5
365
366 #define PART_AVE                6
367 #define PART_SIZE               7
368 #define PART_DRAG               8
369 #define PART_BROWN              9
370 #define PART_DAMP               10
371 #define PART_LENGTH             11
372 #define PART_CLUMP              12
373
374 #define PART_GRAV_X             13
375 #define PART_GRAV_Y             14
376 #define PART_GRAV_Z             15
377
378 #define PART_KINK_AMP   16
379 #define PART_KINK_FREQ  17
380 #define PART_KINK_SHAPE 18
381
382 #define PART_BB_TILT    19
383
384
385 /* these are IpoCurve specific */
386 /* **************** IPO ********************* */
387
388 /* icu->vartype */
389 #define IPO_CHAR                0
390 #define IPO_SHORT               1
391 #define IPO_INT                 2
392 #define IPO_LONG                3
393 #define IPO_FLOAT               4
394 #define IPO_DOUBLE              5
395 #define IPO_FLOAT_DEGR  6
396         /* very special case, in keys */
397 #define IPO_BEZTRIPLE   100
398 #define IPO_BPOINT              101
399
400 /* icu->vartype */
401 #define IPO_BITS                16
402 #define IPO_CHAR_BIT    16
403 #define IPO_SHORT_BIT   17
404 #define IPO_INT_BIT             18
405
406 /* icu->ipo:  the type of curve */
407 #define IPO_CONST               0
408 #define IPO_LIN                 1
409 #define IPO_BEZ                 2
410 #define IPO_MIXED               3 /* not used yet */
411
412 /* icu->extrap */
413 #define IPO_HORIZ               0
414 #define IPO_DIR                 1
415 #define IPO_CYCL                2
416 #define IPO_CYCLX               3
417
418 /* icu->flag */
419 #define IPO_VISIBLE             1
420 #define IPO_SELECT              2
421 #define IPO_EDIT                4
422 #define IPO_LOCK                8
423 #define IPO_AUTO_HORIZ  16
424 #define IPO_ACTIVE              32
425 #define IPO_PROTECT             64
426 #define IPO_MUTE                128
427
428 #endif
429
430
431