69dcef38b576be750a97ef7453a7087e20c461fe
[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
61 /* disptype */
62 #define IPO_DISPDEGR    1
63 #define IPO_DISPBITS    2
64 #define IPO_DISPTIME    3
65
66 /* ******************** */
67
68 #define OB_TOTIPO       24
69
70 #define OB_LOC_X        1
71 #define OB_LOC_Y        2
72 #define OB_LOC_Z        3
73 #define OB_DLOC_X       4
74 #define OB_DLOC_Y       5
75 #define OB_DLOC_Z       6
76
77 #define OB_ROT_X        7
78 #define OB_ROT_Y        8
79 #define OB_ROT_Z        9
80 #define OB_DROT_X       10
81 #define OB_DROT_Y       11
82 #define OB_DROT_Z       12
83
84 #define OB_SIZE_X       13
85 #define OB_SIZE_Y       14
86 #define OB_SIZE_Z       15
87 #define OB_DSIZE_X      16
88 #define OB_DSIZE_Y      17
89 #define OB_DSIZE_Z      18
90
91 #define OB_LAY          19
92
93 #define OB_TIME         20
94
95 #define OB_EFF_X        21
96 #define OB_EFF_Y        22
97 #define OB_EFF_Z        23
98
99 #define OB_COL_R        21
100 #define OB_COL_G        22
101 #define OB_COL_B        23
102 #define OB_COL_A        24
103
104
105
106 /* ******************** */
107
108 #define MA_TOTIPO       32
109
110 #define MA_COL_R        1
111 #define MA_COL_G        2
112 #define MA_COL_B        3
113 #define MA_SPEC_R       4
114 #define MA_SPEC_G       5
115 #define MA_SPEC_B       6
116 #define MA_MIR_R        7
117 #define MA_MIR_G        8
118 #define MA_MIR_B        9
119 #define MA_REF          10
120 #define MA_ALPHA        11
121 #define MA_EMIT         12
122 #define MA_AMB          13
123 #define MA_SPEC         14
124 #define MA_HARD         15
125 #define MA_SPTR         16
126 #define MA_ANG          17
127 #define MA_MODE         18
128 #define MA_HASIZE       19
129
130 #define MA_MAP1         0x20
131 #define MA_MAP2         0x40
132 #define MA_MAP3         0x80
133 #define MA_MAP4         0x100
134 #define MA_MAP5         0x200
135 #define MA_MAP6         0x400
136 #define MA_MAP7         0x800
137 #define MA_MAP8         0x1000
138
139 #define MAP_OFS_X       1
140 #define MAP_OFS_Y       2
141 #define MAP_OFS_Z       3
142 #define MAP_SIZE_X      4
143 #define MAP_SIZE_Y      5
144 #define MAP_SIZE_Z      6
145 #define MAP_R           7
146 #define MAP_G           8
147 #define MAP_B           9
148
149 #define MAP_DVAR        10
150 #define MAP_COLF        11
151 #define MAP_NORF        12
152 #define MAP_VARF        13
153
154 /* ******************** */
155
156 #define SEQ_TOTIPO      1
157
158 #define SEQ_FAC1        1
159
160 /* ******************** */
161
162 #define CU_TOTIPO       1
163
164 #define CU_SPEED        1
165
166 /* ******************** */
167
168 #define KEY_TOTIPO      32
169
170 #define KEY_SPEED       0
171 #define KEY_NR          1
172
173 /* ******************** */
174
175 #define WO_TOTIPO       29
176
177 #define WO_HOR_R        1
178 #define WO_HOR_G        2
179 #define WO_HOR_B        3
180 #define WO_ZEN_R        4
181 #define WO_ZEN_G        5
182 #define WO_ZEN_B        6
183
184 #define WO_EXPOS        7
185
186 #define WO_MISI         8
187 #define WO_MISTDI       9
188 #define WO_MISTSTA      10
189 #define WO_MISTHI       11
190
191 #define WO_STAR_R       12
192 #define WO_STAR_G       13
193 #define WO_STAR_B       14
194 #define WO_STARDIST     15
195 #define WO_STARSIZE     16
196
197 /* ******************** */
198
199 #define LA_TOTIPO       23
200
201 #define LA_ENERGY       1
202 #define LA_COL_R        2
203 #define LA_COL_G        3
204 #define LA_COL_B        4
205 #define LA_DIST         5
206 #define LA_SPOTSI       6
207 #define LA_SPOTBL       7
208 #define LA_QUAD1        8
209 #define LA_QUAD2        9
210 #define LA_HALOINT      10
211
212 /* ******************** */
213
214 #define CAM_TOTIPO      3
215
216 #define CAM_LENS        1
217 #define CAM_STA         2
218 #define CAM_END         3
219
220
221 /* ******************** */
222
223 #define SND_TOTIPO      4
224
225 #define SND_VOLUME      1
226 #define SND_PITCH       2
227 #define SND_PANNING     3
228 #define SND_ATTEN       4
229
230 /* ******************** */
231
232 #define AC_TOTIPO       10      /* __NLA */
233
234 #define AC_LOC_X        1
235 #define AC_LOC_Y        2
236 #define AC_LOC_Z        3
237
238 #define AC_SIZE_X       13
239 #define AC_SIZE_Y       14
240 #define AC_SIZE_Z       15
241
242 #define AC_QUAT_W       25
243 #define AC_QUAT_X       26
244 #define AC_QUAT_Y       27
245 #define AC_QUAT_Z       28
246
247 /* ******************** */
248 #define CO_TOTIPO       1       /* Constraint Ipos */
249
250 #define CO_ENFORCE      1
251 /*
252 #define CO_TIME         2
253 #define CO_OFFSET_X     3
254 #define CO_OFFSET_Y     4
255 #define CO_OFFSET_Z     5
256 #define CO_ORIENT_X     6
257 #define CO_ORIENT_Y     7
258 #define CO_ORIENT_Z     8
259 #define CO_ROLL         9
260 */
261
262 /* these are ipo-specific */
263 /* **************** IPO ********************* */
264
265 /* vartype */
266 #define IPO_CHAR                0
267 #define IPO_SHORT               1
268 #define IPO_INT                 2
269 #define IPO_LONG                3
270 #define IPO_FLOAT               4
271 #define IPO_DOUBLE              5
272 #define IPO_FLOAT_DEGR  6
273 /* very special case, in keys */
274 #define IPO_BEZTRIPLE   100
275 #define IPO_BPOINT              101
276
277
278 #define IPO_BITS                16
279 #define IPO_CHAR_BIT    16
280 #define IPO_SHORT_BIT   17
281 #define IPO_INT_BIT             18
282
283 /* ipo */
284 #define IPO_CONST               0
285 #define IPO_LIN                 1
286 #define IPO_BEZ                 2
287 #define IPO_MIXED               3
288
289 /* extrap */
290 #define IPO_HORIZ               0
291 #define IPO_DIR                 1
292 #define IPO_CYCL                2
293 #define IPO_CYCLX               3
294
295 /* flag */
296 #define IPO_VISIBLE             1
297 #define IPO_SELECT              2
298 #define IPO_EDIT                4
299 #define IPO_LOCK                8
300
301 #endif
302