diff options
Diffstat (limited to 'source/blender/include/blendef.h')
-rw-r--r-- | source/blender/include/blendef.h | 403 |
1 files changed, 403 insertions, 0 deletions
diff --git a/source/blender/include/blendef.h b/source/blender/include/blendef.h new file mode 100644 index 00000000000..6d6b3904645 --- /dev/null +++ b/source/blender/include/blendef.h @@ -0,0 +1,403 @@ +/* $Id$ + * + * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + */ +#ifndef BLENDEF_H +#define BLENDEF_H + +#ifdef WIN32 +#else +#ifndef __BeOS +#define O_BINARY 0 +#endif +#endif + +#ifndef MAXFLOAT +#define MAXFLOAT ((float)3.40282347e+38) +#endif + +#include <float.h> /* deze moet een keer naar de blender.h */ + + + + +/* **************** ALGEMEEN ********************* */ + +#define VECCOPY(v1,v2) {*(v1)= *(v2); *(v1+1)= *(v2+1); *(v1+2)= *(v2+2);} +#define QUATCOPY(v1,v2) {*(v1)= *(v2); *(v1+1)= *(v2+1); *(v1+2)= *(v2+2); *(v1+3)= *(v2+3);} + +#define INPR(v1, v2) ( (v1)[0]*(v2)[0] + (v1)[1]*(v2)[1] + (v1)[2]*(v2)[2] ) +#define CLAMP(a, b, c) if((a)<(b)) (a)=(b); else if((a)>(c)) (a)=(c) +#define CLAMPIS(a, b, c) ((a)<(b) ? (b) : (a)>(c) ? (c) : (a)) +#define CLAMPTEST(a, b, c) if((b)<(c)) {CLAMP(a, b, c);} else {CLAMP(a, c, b);} + +#define IS_EQ(a,b) ((fabs((double)(a)-(b)) >= (double) FLT_EPSILON) ? 0 : 1) + +#define INIT_MINMAX(min, max) (min)[0]= (min)[1]= (min)[2]= 1.0e30; (max)[0]= (max)[1]= (max)[2]= -1.0e30; +#define DO_MINMAX(vec, min, max) if( (min)[0]>(vec)[0] ) (min)[0]= (vec)[0]; \ + if( (min)[1]>(vec)[1] ) (min)[1]= (vec)[1]; \ + if( (min)[2]>(vec)[2] ) (min)[2]= (vec)[2]; \ + if( (max)[0]<(vec)[0] ) (max)[0]= (vec)[0]; \ + if( (max)[1]<(vec)[1] ) (max)[1]= (vec)[1]; \ + if( (max)[2]<(vec)[2] ) (max)[2]= (vec)[2]; \ + +#define DO_MINMAX2(vec, min, max) if( (min)[0]>(vec)[0] ) (min)[0]= (vec)[0]; \ + if( (min)[1]>(vec)[1] ) (min)[1]= (vec)[1]; \ + if( (max)[0]<(vec)[0] ) (max)[0]= (vec)[0]; \ + if( (max)[1]<(vec)[1] ) (max)[1]= (vec)[1]; + +#define MINSIZE(val, size) ( ((val)>=0.0) ? (((val)<(size)) ? (size): (val)) : ( ((val)>(-size)) ? (-size) : (val))) + +#define BTST(a,b) ( ( (a) & 1<<(b) )!=0 ) +#define BCLR(a,b) ( (a) & ~(1<<(b)) ) +#define BSET(a,b) ( (a) | 1<<(b) ) +/* bit-row */ +#define BROW(min, max) (((max)>=31? 0xFFFFFFFF: (1<<(max+1))-1) - ((min)? ((1<<(min))-1):0) ) + +// return values + +#define RET_OK 0 +#define RET_ERROR 1 +#define RET_CANCEL 2 +#define RET_YES (1 == 1) +#define RET_NO (1 == 0) + +#define LONGCOPY(a, b, c) {int lcpc=c, *lcpa=(int *)a, *lcpb=(int *)b; while(lcpc-->0) *(lcpa++)= *(lcpb++);} + +#if defined(__sgi) || defined(__sparc) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__) +/* big endian */ +#define MAKE_ID2(c, d) ( (c)<<8 | (d) ) +#define MOST_SIG_BYTE 0 +#define BBIG_ENDIAN +#else +/* little endian */ +#define MAKE_ID2(c, d) ( (d)<<8 | (c) ) +#define MOST_SIG_BYTE 1 +#define BLITTLE_ENDIAN +#endif + +#define SELECT 1 +#define ACTIVE 2 +#define NOT_YET 0 + + +#define TESTBASE(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) ) +#define TESTBASELIB(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) && ((base)->object->id.lib==0)) +#define FIRSTBASE G.scene->base.first +#define LASTBASE G.scene->base.last +#define BASACT (G.scene->basact) +#define OBACT (BASACT? BASACT->object: 0) +#define ID_NEW(a) if( (a) && (a)->id.newid ) (a)= (void *)(a)->id.newid +#define ID_NEW_US(a) if( (a)->id.newid) {(a)= (void *)(a)->id.newid; (a)->id.us++;} +#define ID_NEW_US2(a) if( ((ID *)a)->newid) {(a)= ((ID *)a)->newid; ((ID *)a)->us++;} +#define CFRA (G.scene->r.cfra) +#define F_CFRA ((float)(G.scene->r.cfra)) +#define SFRA (G.scene->r.sfra) +#define EFRA (G.scene->r.efra) + +#define ISPOIN(a, b, c) ( (a->b) && (a->c) ) +#define ISPOIN3(a, b, c, d) ( (a->b) && (a->c) && (a->d) ) +#define ISPOIN4(a, b, c, d, e) ( (a->b) && (a->c) && (a->d) && (a->e) ) + + +#define KNOTSU(nu) ( (nu)->orderu+ (nu)->pntsu+ (nu->orderu-1)*((nu)->flagu & 1) ) +#define KNOTSV(nu) ( (nu)->orderv+ (nu)->pntsv+ (nu->orderv-1)*((nu)->flagv & 1) ) + +/* psfont */ +#define FNT_PDRAW 1 +#define FNT_HAEBERLI 2 + + +/* isect en scanfill */ +#define COMPLIMIT 0.0003 + + +/* **************** MAX ********************* */ + + +#define MAXLAMP 256 +/* max lengte material array, 16 vanwege bitjes in matfrom */ +#define MAXPICKBUF 2000 +#define MAXSEQ 32 +/* in Image struct */ +#define MAXMIPMAP 10 +/* in buttons.c */ +#define MAX_EFFECT 20 + +/* getbutton */ + +/* do_global_buttons(event) */ + +#define B_ACTLOCAL 24 /* __NLA */ +#define B_ACTALONE 25 /* __NLA */ +#define B_ARMLOCAL 26 /* __NLA */ +#define B_ARMALONE 27 /* __NLA */ + +#define B_WORLDLOCAL 28 +#define B_WORLDALONE 29 +#define B_LATTLOCAL 30 +#define B_MBALLLOCAL 31 +#define B_CAMERALOCAL 32 +#define B_OBLOCAL 33 +#define B_IPOLOCAL 34 +#define B_LAMPLOCAL 35 +#define B_MATLOCAL 36 +#define B_TEXLOCAL 37 +#define B_MESHLOCAL 38 +#define B_CURVELOCAL 39 + +#define B_LATTALONE 40 +#define B_MBALLALONE 41 +#define B_CAMERAALONE 42 +#define B_OBALONE 43 +#define B_IPOALONE 44 +#define B_LAMPALONE 45 +#define B_MATALONE 46 +#define B_TEXALONE 47 +#define B_MESHALONE 48 +#define B_CURVEALONE 49 +/* EVENT < 50: alone's en locals */ + +#define B_SHOWSPLASH 70 +#define B_RESETAUTOSAVE 71 +#define B_SOUNDTOGGLE 72 +#define B_MIPMAPCHANGED 73 +#define B_CONSTRAINTBROWSE 74 /* __NLA */ +#define B_ACTIONDELETE 75 /* __NLA */ +#define B_ACTIONBROWSE 76 /* __NLA */ +#define B_IMAGEDELETE 77 +#define B_LTEXBROWSE 78 +#define B_MESHBROWSE 79 +#define B_EXTEXBROWSE 80 +#define B_LOADTEMP 81 +#define B_MATDELETE 82 +#define B_TEXDELETE 83 +#define B_IPODELETE 84 +#define B_WORLDDELETE 85 +#define B_WTEXBROWSE 86 +#define B_WORLDBROWSE 87 +#define B_IPOBROWSE 88 +#define B_NEWFRAME 89 +#define B_LAMPBROWSE 90 +#define B_MATBROWSE 91 +#define B_TEXBROWSE 92 +#define B_EDITBROWSE 93 +#define B_AUTOTEXNAME 94 +#define B_AUTOMATNAME 95 +#define B_MATLOCK 96 +#define B_IDNAME 97 +#define B_NEWSPACE 98 +#define B_FULL 99 +#define B_REDR 100 + + +/* VIEW3D: 100 */ +#define B_HOME 101 +#define B_LAY 102 +/* pasop: codes 102-132 in gebuik voor layers */ +#define B_AUTOKEY 139 +#define B_SCENELOCK 140 +#define B_LOCALVIEW 141 +#define B_U_CAPSLOCK 142 +#define B_EDITMODE 143 +#define B_VPAINT 144 +#define B_FACESEL 145 +#define B_VIEWBUT 146 +#define B_PERSP 147 +#define B_PROPTOOL 148 +#define B_VIEWRENDER 149 +#define B_VIEWTRANS 150 +#define B_VIEWZOOM 151 +#define B_STARTGAME 152 +#define B_POSEMODE 153 +#define B_TEXTUREPAINT 154 +#define B_WPAINT 155 + +/* IPO: 200 */ +#define B_IPOHOME 201 +#define B_IPOBORDER 202 +#define B_IPOCOPY 203 +#define B_IPOPASTE 204 +#define B_IPOCONT 205 +#define B_IPOEXTRAP 206 +#define B_IPOCYCLIC 207 +#define B_IPOMAIN 208 +#define B_IPOSHOWKEY 209 +#define B_IPOCYCLICX 210 + /* warn: also used for oops and seq */ +#define B_VIEW2DZOOM 211 +#define B_IPOPIN 212 + +/* OOPS: 250 */ +#define B_OOPSHOME 251 +#define B_OOPSBORDER 252 +#define B_NEWOOPS 253 + +/* INFO: 300 */ +/* pas op: ook in filesel.c en editobject.c */ +#define B_INFOSCR 301 +#define B_INFODELSCR 302 +#define B_INFOSCE 304 +#define B_INFODELSCE 305 +#define B_FILEMENU 306 +#define B_PACKFILE 307 + +/* IMAGE: 350 */ +#define B_SIMAGEHOME 351 +#define B_SIMABROWSE 352 +#define B_SIMAGELOAD 353 +#define B_SIMAGEDRAW 354 +#define B_BE_SQUARE 355 +#define B_SIMAGEDRAW1 356 +#define B_TWINANIM 357 +#define B_SIMAGEREPLACE 358 +#define B_CLIP_UV 359 +#define B_SIMAGELOAD1 360 +#define B_SIMAGEREPLACE1 361 +#define B_SIMAGEPAINTTOOL 362 +#define B_SIMAPACKIMA 363 +#define B_SIMAGESAVE 364 + +/* BUTS: 400 */ +#define B_BUTSHOME 401 +#define B_BUTSPREVIEW 402 +#define B_MATCOPY 403 +#define B_MATPASTE 404 +#define B_MESHTYPE 405 + +/* IMASEL: 450 */ +/* in de imasel.h */ + +/* TEXT: 500 */ +#define B_TEXTBROWSE 501 +#define B_TEXTALONE 502 +#define B_TEXTLOCAL 503 +#define B_TEXTDELETE 504 +#define B_TEXTFONT 505 +#define B_TEXTSTORE 506 + +/* FILE: 550 */ +#define B_SORTFILELIST 551 +#define B_RELOADDIR 552 + +/* SEQUENCE: 600 */ +#define B_SEQHOME 601 +#define B_SEQCLEAR 602 + +/* SOUND: 650 */ +#define B_SOUNDBROWSE 651 +#define B_SOUNDBROWSE2 652 +#define B_SOUNDHOME 653 +#define B_PACKSOUND 654 + +/* ACTION: 701 - 800 */ +#define B_ACTHOME 701 +#define B_ACTCOPY 702 +#define B_ACTPASTE 703 +#define B_ACTPASTEFLIP 704 +#define B_ACTCYCLIC 705 +#define B_ACTCONT 706 +#define B_ACTMAIN 707 +#define B_ACTPIN 708 +#define B_ACTBAKE 709 + +#define B_NOTHING -1 +#define B_NOP -1 + +/* NLA: 801-900 */ +#define B_NLAHOME 801 + +/* editbutflag */ +#define B_CLOCKWISE 1 +#define B_KEEPORIG 2 +#define B_BEAUTY 4 +#define B_SMOOTH 8 + + +/* ***************** DISPLIST ***************** */ + +#define DL_POLY 0 +#define DL_SEGM 1 +#define DL_SURF 2 +#define DL_TRIA 3 +#define DL_INDEX3 4 +#define DL_INDEX4 5 +#define DL_VERTCOL 6 +#define DL_VERTS 7 +#define DL_NORS 8 + +#define DL_SURFINDEX(cyclu, cyclv, sizeu, sizev) \ + \ + if( (cyclv)==0 && a==(sizev)-1) break; \ + if(cyclu) { \ + p1= sizeu*a; \ + p2= p1+ sizeu-1; \ + p3= p1+ sizeu; \ + p4= p2+ sizeu; \ + b= 0; \ + } \ + else { \ + p2= sizeu*a; \ + p1= p2+1; \ + p4= p2+ sizeu; \ + p3= p1+ sizeu; \ + b= 1; \ + } \ + if( (cyclv) && a==sizev-1) { \ + p3-= sizeu*sizev; \ + p4-= sizeu*sizev; \ + } + +/* DISPLAYMODE */ +#define R_DISPLAYVIEW 0 +#define R_DISPLAYWIN 1 +#define R_DISPLAYAUTO 2 + + + +#if defined(__sgi) || defined(__sparc) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__) +#define RCOMP 3 +#define GCOMP 2 +#define BCOMP 1 +#define ACOMP 0 + +#else + +#define RCOMP 0 +#define GCOMP 1 +#define BCOMP 2 +#define ACOMP 3 +#endif + +#ifdef GS +#undef GS +#endif +#define GS(a) (*((short *)(a))) + +#endif |