Saturday merger of bf-blender in orange branch.
[blender.git] / source / blender / include / blendef.h
1 /* $Id$
2  *
3  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version. The Blender
9  * Foundation also sells licenses for use in proprietary software under
10  * the Blender License.  See http://www.blender.org/BL/ for information
11  * about this.
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/BL DUAL LICENSE BLOCK *****
30  */
31 #ifndef BLENDEF_H
32 #define BLENDEF_H
33
34
35 /* **************** MAX ********************* */
36
37 #define MAXFRAME        30000
38 #define MAXFRAMEF       30000.0f
39
40 #define MINFRAME        1
41 #define MINFRAMEF       1.0
42
43 #define MAXLAMP         32765
44 /* max length material array, 16 because of bits in matfrom */
45 #define MAXPICKBUF      10000
46 #define MAXSEQ          32
47 /*  in Image struct */
48 #define MAXMIPMAP       10
49 /* in buttons.c */
50 #define MAX_EFFECT      20
51
52 #ifndef MAXFLOAT
53 #define MAXFLOAT  ((float)3.40282347e+38)
54 #endif
55
56 /* also fill in structs itself, dna cannot handle defines, duplicate with utildefines.h still */
57 #ifndef FILE_MAXDIR
58 #define FILE_MAXDIR                     160
59 #define FILE_MAXFILE            80
60 #endif
61
62
63 #include <float.h>      
64
65
66
67
68 /* **************** GENERAL ********************* */
69
70 // return values
71
72 #define RET_OK 0
73 #define RET_ERROR 1
74 #define RET_CANCEL 2
75 #define RET_YES (1 == 1)
76 #define RET_NO (1 == 0)
77
78 #if defined(__sgi) || defined(__sparc) || defined(__sparc__) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__)
79 /* big endian */
80 #define MAKE_ID2(c, d)          ( (c)<<8 | (d) )
81 #define MOST_SIG_BYTE                           0
82 #define BBIG_ENDIAN
83 #else
84 /* little endian  */
85 #define MAKE_ID2(c, d)          ( (d)<<8 | (c) )
86 #define MOST_SIG_BYTE                           1
87 #define BLITTLE_ENDIAN
88 #endif
89
90 #define SELECT                  1
91 #define ACTIVE                  2
92 #define DESELECT                0
93 #define NOT_YET                 0
94
95
96 #define TESTBASE(base)  ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) )
97 #define TESTBASELIB(base)       ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) && ((base)->object->id.lib==0))
98 #define FIRSTBASE               G.scene->base.first
99 #define LASTBASE                G.scene->base.last
100 #define BASACT                  (G.scene->basact)
101 #define OBACT                   (BASACT? BASACT->object: 0)
102 #define ID_NEW(a)               if( (a) && (a)->id.newid ) (a)= (void *)(a)->id.newid
103 #define ID_NEW_US(a)    if( (a)->id.newid) {(a)= (void *)(a)->id.newid; (a)->id.us++;}
104 #define ID_NEW_US2(a)   if( ((ID *)a)->newid) {(a)= ((ID *)a)->newid; ((ID *)a)->us++;}
105 #define CFRA                    (G.scene->r.cfra)
106 #define F_CFRA                  ((float)(G.scene->r.cfra))
107 #define SFRA                    (G.scene->r.sfra)
108 #define EFRA                    (G.scene->r.efra)
109
110 #define ISPOIN(a, b, c)                 ( (a->b) && (a->c) )
111 #define ISPOIN3(a, b, c, d)             ( (a->b) && (a->c) && (a->d) )
112 #define ISPOIN4(a, b, c, d, e)  ( (a->b) && (a->c) && (a->d) && (a->e) )
113
114
115 /* psfont */
116 #define FNT_PDRAW 1
117 #define FNT_HAEBERLI 2
118
119 /* getbutton */
120
121 /* do_global_buttons(event) */
122
123 // (first event)
124 #define B_LOCAL_ALONE   20
125
126
127 #define B_ACTLOCAL              24      /* __NLA */
128 #define B_ACTALONE              25      /* __NLA */
129 #define B_ARMLOCAL              26      /* __NLA */
130 #define B_ARMALONE              27      /* __NLA */
131
132 #define B_WORLDLOCAL            28
133 #define B_WORLDALONE            29
134 #define B_LATTLOCAL             30
135 #define B_MBALLLOCAL            31
136 #define B_CAMERALOCAL           32
137 #define B_OBLOCAL               33
138 #define B_IPOLOCAL              34
139 #define B_LAMPLOCAL             35
140 #define B_MATLOCAL              36
141 #define B_TEXLOCAL              37
142 #define B_MESHLOCAL             38
143 #define B_CURVELOCAL            39
144
145 #define B_LATTALONE             40
146 #define B_MBALLALONE            41
147 #define B_CAMERAALONE           42
148 #define B_OBALONE               43
149 #define B_IPOALONE              44
150 #define B_LAMPALONE             45
151 #define B_MATALONE              46
152 #define B_TEXALONE              47
153 #define B_MESHALONE             48
154 #define B_CURVEALONE            49
155 #define B_HEMESHALONE   50
156
157 /* EVENT < 50: alones en locals */
158
159 #define B_KEEPDATA              60
160 #define B_CONSOLETOG            61
161 #define B_DRAWINFO              62
162 #define B_REDRCURW3D            63
163 #define B_FLIPINFOMENU          64
164 #define B_FLIPFULLSCREEN        65
165 #define B_PLAINMENUS            66
166
167
168 #define B_SHOWSPLASH            70
169 #define B_RESETAUTOSAVE         71
170 #define B_SOUNDTOGGLE           72
171 #define B_MIPMAPCHANGED         73
172 #define B_CONSTRAINTBROWSE      74      /* __NLA */
173 #define B_ACTIONDELETE          75      /* __NLA */
174 #define B_ACTIONBROWSE          76      /* __NLA */
175 #define B_IMAGEDELETE           77
176 #define B_LTEXBROWSE            78
177 #define B_MESHBROWSE            79
178 #define B_EXTEXBROWSE           80
179 #define B_LOADTEMP              81
180 #define B_MATDELETE             82
181 #define B_TEXDELETE             83
182 #define B_IPODELETE             84
183 #define B_WORLDDELETE           85
184 #define B_WTEXBROWSE            86
185 #define B_WORLDBROWSE           87
186 #define B_IPOBROWSE             88
187 #define B_NEWFRAME              89
188 #define B_LAMPBROWSE            90
189 #define B_MATBROWSE             91
190 #define B_TEXBROWSE             92
191 #define B_EDITBROWSE            93
192 #define B_AUTOTEXNAME           94
193 #define B_AUTOMATNAME           95
194 #define B_MATLOCK               96
195 #define B_IDNAME                97
196 #define B_NEWSPACE              98
197 #define B_FULL                  99
198 #define B_REDR                  100
199
200
201 /* VIEW3D: 100 */
202 #define B_HOME                  101
203 #define B_LAY                   102
204 /* watch: codes 102-132 in in use for layers */
205 #define B_AUTOKEY               139
206 #define B_SCENELOCK             140
207 #define B_LOCALVIEW             141
208 #define B_U_CAPSLOCK    142
209
210 #define B_VIEWBUT               146
211 #define B_PERSP                 147
212 #define B_PROPTOOL              148
213 #define B_VIEWRENDER    149
214 #define B_VIEWTRANS             150
215 #define B_VIEWZOOM              151
216 #define B_STARTGAME             152
217
218 #define B_MODESELECT    156
219 #define B_AROUND                157
220 #define B_SEL_VERT              158
221 #define B_SEL_EDGE              159
222 #define B_SEL_FACE              160
223 #define B_MAN_TRANS             161
224 #define B_MAN_ROT               162
225 #define B_MAN_SCALE             163
226 #define B_HEMESHBROWSE  164
227 #define B_HEMESHLOCAL   165
228
229 /* IPO: 200 */
230 #define B_IPOHOME               201
231 #define B_IPOBORDER             202
232 #define B_IPOCOPY               203
233 #define B_IPOPASTE              204
234 #define B_IPOCONT               205
235 #define B_IPOEXTRAP             206
236 #define B_IPOCYCLIC             207
237 #define B_IPOMAIN               208
238 #define B_IPOSHOWKEY    209
239 #define B_IPOCYCLICX    210
240         /* warn: also used for oops and seq */
241 #define B_VIEW2DZOOM    211
242 #define B_IPOPIN                212
243 #define B_IPO_ACTION_OB         213
244 #define B_IPO_ACTION_KEY        214
245
246
247 /* OOPS: 250 */
248 #define B_OOPSHOME              251
249 #define B_OOPSBORDER            252
250 #define B_NEWOOPS               253
251 #define B_OOPSVIEWSEL           254
252
253 /* INFO: 300 */
254 /* watch: also in filesel.c and editobject.c */
255 #define B_INFOSCR               301
256 #define B_INFODELSCR    302
257 #define B_INFOSCE               304
258 #define B_INFODELSCE    305
259 #define B_FILEMENU              306
260 #define B_PACKFILE              307
261
262 #define B_CONSOLEOUT            308
263 #define B_CONSOLENUMLINES       309
264 #define B_USERPREF                      310
265 #define B_LOADUIFONT            311
266 #define B_SETLANGUAGE           312
267 #define B_SETFONTSIZE           313
268 #define B_SETENCODING           314
269 #define B_SETTRANSBUTS          315
270 #define B_DOLANGUIFONT          316
271 #define B_RESTOREFONT           317
272 #define B_USETEXTUREFONT        318
273
274 #define B_UITHEMECHANGED        320
275 #define B_UITHEMECOLORMOD       321
276 #define B_UITHEMERESET          322
277 #define B_UITHEMEIMPORT         323
278 #define B_UITHEMEEXPORT         324
279
280 /* Definitions for the fileselect buttons in user prefs */
281 #define B_FONTDIRFILESEL        330
282 #define B_TEXTUDIRFILESEL       331
283 #define B_PLUGTEXDIRFILESEL 332
284 #define B_PLUGSEQDIRFILESEL 333
285 #define B_RENDERDIRFILESEL  334
286 #define B_PYTHONDIRFILESEL  335
287 #define B_SOUNDDIRFILESEL       336
288 #define B_TEMPDIRFILESEL        337
289 /* yafray: for exportdir select */
290 #define B_YAFRAYDIRFILESEL      338
291 #define B_PYMENUEVAL    339 /* re-eval scripts registration in menus */
292 /* END Definitions for the fileselect buttons in user prefs */
293
294 /* IMAGE: 350 */
295 #define B_SIMAGEHOME            351
296 #define B_SIMABROWSE            352
297 #define B_SIMAGELOAD            353
298 #define B_SIMAGEDRAW            354
299 #define B_BE_SQUARE             355
300 #define B_SIMAGEDRAW1           356
301 #define B_TWINANIM              357
302 #define B_SIMAGEREPLACE         358
303 #define B_CLIP_UV               359
304 #define B_SIMAGELOAD1           360
305 #define B_SIMAGEREPLACE1        361
306 #define B_SIMAGEPAINTTOOL       362
307 #define B_SIMAPACKIMA           363
308 #define B_SIMAGESAVE            364
309 #define B_SIMACLONEBROWSE       365
310 #define B_SIMACLONEDELETE       366
311 #define B_SIMABRUSHCHANGE       367
312 #define B_SIMANOTHING           368
313
314 /* BUTS: 400 */
315 #define B_BUTSHOME              401
316 #define B_BUTSPREVIEW   402
317 #define B_MATCOPY               403
318 #define B_MATPASTE              404
319 #define B_MESHTYPE              405
320 #define B_CONTEXT_SWITCH        406
321
322 /* IMASEL: 450 */
323 /* in imasel.h */
324
325 /* TEXT: 500 */
326 #define B_TEXTBROWSE            501
327 #define B_TEXTALONE             502
328 #define B_TEXTLOCAL             503
329 #define B_TEXTDELETE            504
330 #define B_TEXTFONT              505
331 #define B_TEXTSTORE             506
332 #define B_TEXTLINENUM           507
333 #define B_TAB_NUMBERS           508
334 #define B_SYNTAX                509
335
336 /* SCRIPT: 525 */
337 #define B_SCRIPTBROWSE 526
338 #define B_SCRIPT2PREV  527
339
340 /* FILE: 550 */
341 #define B_SORTFILELIST          551
342 #define B_RELOADDIR             552
343
344 /* SEQUENCE: 600 */
345 #define B_SEQHOME               601
346 #define B_SEQCLEAR              602
347
348 /* SOUND: 650 */
349 #define B_SOUNDBROWSE           651
350 #define B_SOUNDBROWSE2          652
351 #define B_SOUNDHOME             653
352 #define B_PACKSOUND             654
353
354 /* ACTION: 701 - 750 */
355 #define B_ACTHOME               701
356 #define B_ACTCOPY               702
357 #define B_ACTPASTE              703
358 #define B_ACTPASTEFLIP  704
359 #define B_ACTCYCLIC             705
360 #define B_ACTCONT               706
361 #define B_ACTMAIN               707
362 #define B_ACTPIN                708
363 #define B_ACTBAKE               709
364
365 /* TIME: 751 - 800 */
366 #define B_TL_REW                751
367 #define B_TL_PLAY               752
368 #define B_TL_FF                 753
369 #define B_TL_PREVKEY    754
370 #define B_TL_NEXTKEY    755
371 #define B_TL_STOP               756
372
373 /* NLA: 801-900 */
374 #define B_NLAHOME               801
375
376 /* FREE 900 - 999 */
377
378
379 #define B_NOTHING               -1
380 #define B_NOP                   -1
381
382
383 /* editbutflag */
384 #define B_CLOCKWISE             1
385 #define B_KEEPORIG              2
386 #define B_BEAUTY                4
387 #define B_SMOOTH                8
388 #define B_BEAUTY_SHORT  16
389 #define B_AUTOFGON              32
390 #define B_KNIFE                 0x80
391 #define B_PERCENTSUBD   0x40
392 #define B_MESH_X_MIRROR 0x100
393
394 /* DISPLAYMODE */
395 #define R_DISPLAYVIEW   0
396 #define R_DISPLAYWIN    1
397 #define R_DISPLAYAUTO   2
398
399         /* Gvp.flag and Gwp.flag */
400 #define VP_COLINDEX     1
401 #define VP_AREA         2
402 #define VP_SOFT         4
403 #define VP_NORMALS      8
404 #define VP_SPRAY        16
405 #define VP_MIRROR_X     32
406
407 #endif