svn merge -r 12419:12478 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/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 /* IPO Data-Block */
43 typedef struct Ipo {
44         ID id;
45         
46         ListBase curve;                         /* A list of IpoCurve structs in a linked list. */
47         rctf cur;                                       /* Rect defining extents of keyframes? */
48         
49         short blocktype, showkey;       /* blocktype: self-explanatory; showkey: either 0 or 1 (show vertical yellow lines for editing) */
50         short muteipo, pad;                     /* muteipo: either 0 or 1 (whether ipo block is muted) */       
51 } Ipo;
52
53 /* NOTE: IpoCurve struct is defined in DNA_curve_types.h, not in here... */
54
55 /* sometimes used */
56 typedef short IPO_Channel;  
57
58 /* defines: are these duped or new? */
59
60 #define IPOBUTY 17
61
62 #define TOB_IPO 1
63 #define TOB_IPODROT     2
64
65 /* disptype */
66 #define IPO_DISPDEGR    1
67 #define IPO_DISPBITS    2
68 #define IPO_DISPTIME    3
69
70 /* ******************** */
71
72 #define OB_TOTIPO       29
73 #define OB_TOTNAM       29
74
75 #define OB_LOC_X        1
76 #define OB_LOC_Y        2
77 #define OB_LOC_Z        3
78 #define OB_DLOC_X       4
79 #define OB_DLOC_Y       5
80 #define OB_DLOC_Z       6
81
82 #define OB_ROT_X        7
83 #define OB_ROT_Y        8
84 #define OB_ROT_Z        9
85 #define OB_DROT_X       10
86 #define OB_DROT_Y       11
87 #define OB_DROT_Z       12
88
89 #define OB_SIZE_X       13
90 #define OB_SIZE_Y       14
91 #define OB_SIZE_Z       15
92 #define OB_DSIZE_X      16
93 #define OB_DSIZE_Y      17
94 #define OB_DSIZE_Z      18
95
96 #define OB_LAY          19
97
98 #define OB_TIME         20
99
100 #define OB_COL_R        21
101 #define OB_COL_G        22
102 #define OB_COL_B        23
103 #define OB_COL_A        24
104
105 #define OB_PD_FSTR      25
106 #define OB_PD_FFALL     26
107 #define OB_PD_SDAMP     27
108 #define OB_PD_RDAMP     28
109 #define OB_PD_PERM      29
110
111 /* exception: driver channel, for bone driver only */
112 #define OB_ROT_DIFF     100
113
114
115 /* ******************** */
116
117 #define MA_TOTIPO       40
118 #define MA_TOTNAM       26
119
120 #define MA_COL_R        1
121 #define MA_COL_G        2
122 #define MA_COL_B        3
123 #define MA_SPEC_R       4
124 #define MA_SPEC_G       5
125 #define MA_SPEC_B       6
126 #define MA_MIR_R        7
127 #define MA_MIR_G        8
128 #define MA_MIR_B        9
129 #define MA_REF          10
130 #define MA_ALPHA        11
131 #define MA_EMIT         12
132 #define MA_AMB          13
133 #define MA_SPEC         14
134 #define MA_HARD         15
135 #define MA_SPTR         16
136 #define MA_IOR          17
137 #define MA_MODE         18
138 #define MA_HASIZE       19
139 #define MA_TRANSLU      20
140 #define MA_RAYM         21
141 #define MA_FRESMIR      22
142 #define MA_FRESMIRI     23
143 #define MA_FRESTRA      24
144 #define MA_FRESTRAI     25
145 #define MA_ADD          26
146
147 #define MA_MAP1         0x20
148 #define MA_MAP2         0x40
149 #define MA_MAP3         0x80
150 #define MA_MAP4         0x100
151 #define MA_MAP5         0x200
152 #define MA_MAP6         0x400
153 #define MA_MAP7         0x800
154 #define MA_MAP8         0x1000
155 #define MA_MAP9         0x2000
156 #define MA_MAP10        0x4000
157
158 #define TEX_TOTNAM      14
159
160 #define MAP_OFS_X       1
161 #define MAP_OFS_Y       2
162 #define MAP_OFS_Z       3
163 #define MAP_SIZE_X      4
164 #define MAP_SIZE_Y      5
165 #define MAP_SIZE_Z      6
166 #define MAP_R           7
167 #define MAP_G           8
168 #define MAP_B           9
169
170 #define MAP_DVAR        10
171 #define MAP_COLF        11
172 #define MAP_NORF        12
173 #define MAP_VARF        13
174 #define MAP_DISP        14
175
176 /* ******************** */
177
178 #define TE_TOTIPO       26
179 #define TE_TOTNAM       26
180
181 #define TE_NSIZE        1
182 #define TE_NDEPTH       2
183 #define TE_NTYPE        3
184 #define TE_TURB         4
185
186 #define TE_VNW1         5
187 #define TE_VNW2         6
188 #define TE_VNW3         7
189 #define TE_VNW4         8
190 #define TE_VNMEXP       9
191 #define TE_VN_DISTM     10
192 #define TE_VN_COLT      11
193
194 #define TE_ISCA         12
195 #define TE_DISTA        13
196
197 #define TE_MG_TYP       14
198 #define TE_MGH          15
199 #define TE_MG_LAC       16
200 #define TE_MG_OCT       17
201 #define TE_MG_OFF       18
202 #define TE_MG_GAIN      19
203
204 #define TE_N_BAS1       20
205 #define TE_N_BAS2       21
206
207 #define TE_COL_R    22
208 #define TE_COL_G    23
209 #define TE_COL_B    24
210 #define TE_BRIGHT       25
211 #define TE_CONTRA       26
212
213 /* ******************** */
214
215 #define SEQ_TOTIPO      1
216 #define SEQ_TOTNAM      1
217
218 #define SEQ_FAC1        1
219
220 /* ******************** */
221
222 #define CU_TOTIPO       1
223 #define CU_TOTNAM       1
224
225 #define CU_SPEED        1
226
227 /* ******************** */
228
229 #define KEY_TOTIPO      64
230 #define KEY_TOTNAM      64
231
232 #define KEY_SPEED       0
233 #define KEY_NR          1
234
235 /* ******************** */
236
237 #define WO_TOTIPO       29
238 #define WO_TOTNAM       16
239
240 #define WO_HOR_R        1
241 #define WO_HOR_G        2
242 #define WO_HOR_B        3
243 #define WO_ZEN_R        4
244 #define WO_ZEN_G        5
245 #define WO_ZEN_B        6
246
247 #define WO_EXPOS        7
248
249 #define WO_MISI         8
250 #define WO_MISTDI       9
251 #define WO_MISTSTA      10
252 #define WO_MISTHI       11
253
254 #define WO_STAR_R       12
255 #define WO_STAR_G       13
256 #define WO_STAR_B       14
257 #define WO_STARDIST     15
258 #define WO_STARSIZE     16
259
260 /* ******************** */
261
262 #define LA_TOTIPO       21
263 #define LA_TOTNAM       10
264
265 #define LA_ENERGY       1
266 #define LA_COL_R        2
267 #define LA_COL_G        3
268 #define LA_COL_B        4
269 #define LA_DIST         5
270 #define LA_SPOTSI       6
271 #define LA_SPOTBL       7
272 #define LA_QUAD1        8
273 #define LA_QUAD2        9
274 #define LA_HALOINT      10
275
276 /* ******************** */
277
278 /* yafray: totipo & totnam +2 because of added curves */
279 #define CAM_TOTIPO      7
280 #define CAM_TOTNAM      7
281
282 #define CAM_LENS        1
283 #define CAM_STA         2
284 #define CAM_END         3
285
286 /* yafray aperture & focal distance curves */
287 #define CAM_YF_APERT    4
288 #define CAM_YF_FDIST    5
289
290 #define CAM_SHIFT_X             6
291 #define CAM_SHIFT_Y             7
292
293 /* ******************** */
294
295 #define SND_TOTIPO      4
296 #define SND_TOTNAM      4
297
298 #define SND_VOLUME      1
299 #define SND_PITCH       2
300 #define SND_PANNING     3
301 #define SND_ATTEN       4
302
303 /* ******************** */
304
305 #define AC_TOTIPO       10      /* __NLA */
306 #define AC_TOTNAM       10
307
308 #define AC_LOC_X        1
309 #define AC_LOC_Y        2
310 #define AC_LOC_Z        3
311
312 #define AC_SIZE_X       13
313 #define AC_SIZE_Y       14
314 #define AC_SIZE_Z       15
315
316 #define AC_QUAT_W       25
317 #define AC_QUAT_X       26
318 #define AC_QUAT_Y       27
319 #define AC_QUAT_Z       28
320
321 /* ******************** */
322 #define CO_TOTIPO       1       /* Constraint Ipos */
323 #define CO_TOTNAM       1
324
325 #define CO_ENFORCE      1
326 /*
327 #define CO_TIME         2
328 #define CO_OFFSET_X     3
329 #define CO_OFFSET_Y     4
330 #define CO_OFFSET_Z     5
331 #define CO_ORIENT_X     6
332 #define CO_ORIENT_Y     7
333 #define CO_ORIENT_Z     8
334 #define CO_ROLL         9
335 */
336
337 /* ******************** */
338 /* fluidsim ipos NT */
339
340 #define FLUIDSIM_TOTIPO 9
341 #define FLUIDSIM_TOTNAM 9
342
343 #define FLUIDSIM_VISC   1
344 #define FLUIDSIM_TIME   2
345
346 #define FLUIDSIM_GRAV_X 3
347 #define FLUIDSIM_GRAV_Y 4
348 #define FLUIDSIM_GRAV_Z 5
349
350 #define FLUIDSIM_VEL_X  6
351 #define FLUIDSIM_VEL_Y  7
352 #define FLUIDSIM_VEL_Z  8
353
354 #define FLUIDSIM_ACTIVE 9
355
356
357 /* these are IpoCurve specific */
358 /* **************** IPO ********************* */
359
360 /* icu->vartype */
361 #define IPO_CHAR                0
362 #define IPO_SHORT               1
363 #define IPO_INT                 2
364 #define IPO_LONG                3
365 #define IPO_FLOAT               4
366 #define IPO_DOUBLE              5
367 #define IPO_FLOAT_DEGR  6
368         /* very special case, in keys */
369 #define IPO_BEZTRIPLE   100
370 #define IPO_BPOINT              101
371
372 /* icu->vartype */
373 #define IPO_BITS                16
374 #define IPO_CHAR_BIT    16
375 #define IPO_SHORT_BIT   17
376 #define IPO_INT_BIT             18
377
378 /* icu->ipo:  the type of curve */
379 #define IPO_CONST               0
380 #define IPO_LIN                 1
381 #define IPO_BEZ                 2
382 #define IPO_MIXED               3 /* not used yet */
383
384 /* icu->extrap */
385 #define IPO_HORIZ               0
386 #define IPO_DIR                 1
387 #define IPO_CYCL                2
388 #define IPO_CYCLX               3
389
390 /* icu->flag */
391 #define IPO_VISIBLE             1
392 #define IPO_SELECT              2
393 #define IPO_EDIT                4
394 #define IPO_LOCK                8
395 #define IPO_AUTO_HORIZ  16
396 #define IPO_ACTIVE              32
397 #define IPO_PROTECT             64
398 #define IPO_MUTE                128
399
400 #endif
401