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