/** * $Id:$ * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** * * The contents of this file may be used under the terms of either the GNU * General Public License Version 2 or later (the "GPL", see * http://www.gnu.org/licenses/gpl.html ), or the Blender License 1.0 or * later (the "BL", see http://www.blender.org/BL/ ) which has to be * bought from the Blender Foundation to become active, in which case the * above mentioned GPL option does not apply. * * The Original Code is Copyright (C) 1997 by Ton Roosendaal, Frank van Beek and Joeri Kassenaar. * All rights reserved. * * The Original Code is: all of this file. * * Contributor(s): none yet. * * ***** END GPL/BL DUAL LICENSE BLOCK ***** */ #include "/usr/people/frank/source/iff.h" #include "/usr/people/include/util.h" #include #include #include #include #include #include #include /* cc -O3 noise.o code.o jit.c -lgl_s -lfm_s -lm -o jit */ extern decodekeytab(); float rad,rad1; short keycode[100]= { 0,LEFTCTRLKEY,RIGHTSHIFTKEY,LEFTSHIFTKEY,TABKEY,RETKEY ,LEFTARROWKEY,DOWNARROWKEY,RIGHTARROWKEY,UPARROWKEY,LEFTMOUSE ,MIDDLEMOUSE,F1KEY,F2KEY,F3KEY,F4KEY ,F5KEY,F6KEY,F7KEY,F8KEY,F9KEY,F10KEY ,F11KEY,F12KEY,AKEY,BKEY,CKEY ,DKEY,EKEY,FKEY,GKEY,HKEY ,IKEY,JKEY,KKEY,LKEY,MKEY ,NKEY,OKEY,PKEY,QKEY,RKEY ,SKEY,TKEY,UKEY,VKEY,WKEY ,XKEY,YKEY,ZKEY,ZEROKEY,ONEKEY ,TWOKEY,THREEKEY,FOURKEY,FIVEKEY,SIXKEY ,SEVENKEY,EIGHTKEY,NINEKEY,PAD0,PAD1 ,PAD2,PAD3,PAD4,PAD5,PAD6 ,PAD7,PAD8,PAD9,LEFTALTKEY,RIGHTALTKEY ,RIGHTCTRLKEY,PAUSEKEY,INSERTKEY,HOMEKEY,PAGEUPKEY ,ENDKEY,PAGEDOWNKEY,NUMLOCKKEY,PADVIRGULEKEY,PADASTERKEY ,PADPLUSKEY, SPACEKEY}; /* #define LEFTCTRLKEY keycode[1] #define RIGHTSHIFTKEY keycode[2] #define LEFTSHIFTKEY keycode[3] #define TABKEY keycode[4] #define RETKEY keycode[5] #define LEFTARROWKEY keycode[6] #define DOWNARROWKEY keycode[7] #define RIGHTARROWKEY keycode[8] #define UPARROWKEY keycode[9] #define LEFTMOUSE keycode[10] #define MIDDLEMOUSE keycode[11] #define F1KEY keycode[12] #define F2KEY keycode[13] #define F3KEY keycode[14] #define F4KEY keycode[15] #define F5KEY keycode[16] #define F6KEY keycode[17] #define F7KEY keycode[18] #define F8KEY keycode[19] #define F9KEY keycode[20] #define F10KEY keycode[21] #define F11KEY keycode[22] #define F12KEY keycode[23] #define AKEY keycode[24] #define BKEY keycode[25] #define CKEY keycode[26] #define DKEY keycode[27] #define EKEY keycode[28] #define FKEY keycode[29] #define GKEY keycode[30] #define HKEY keycode[31] #define IKEY keycode[32] #define JKEY keycode[33] #define KKEY keycode[34] #define LKEY keycode[35] #define MKEY keycode[36] #define NKEY keycode[37] #define OKEY keycode[38] #define PKEY keycode[39] #define QKEY keycode[40] #define RKEY keycode[41] #define SKEY keycode[42] #define TKEY keycode[43] #define UKEY keycode[44] #define VKEY keycode[45] #define WKEY keycode[46] #define XKEY keycode[47] #define YKEY keycode[48] #define ZKEY keycode[49] #define ZEROKEY keycode[50] #define ONEKEY keycode[51] #define TWOKEY keycode[52] #define THREEKEY keycode[53] #define FOURKEY keycode[54] #define FIVEKEY keycode[55] #define SIXKEY keycode[56] #define SEVENKEY keycode[57] #define EIGHTKEY keycode[58] #define NINEKEY keycode[59] #define PAD0 keycode[60] #define PAD1 keycode[61] #define PAD2 keycode[62] #define PAD3 keycode[63] #define PAD4 keycode[64] #define PAD5 keycode[65] #define PAD6 keycode[66] #define PAD7 keycode[67] #define PAD8 keycode[68] #define PAD9 keycode[69] #define LEFTALTKEY keycode[70] #define RIGHTALTKEY keycode[71] #define RIGHTCTRLKEY keycode[72] #define PAUSEKEY keycode[73] #define INSERTKEY keycode[74] #define HOMEKEY keycode[75] #define PAGEUPKEY keycode[76] #define ENDKEY keycode[77] #define PAGEDOWNKEY keycode[78] #define NUMLOCKKEY keycode[79] #define PADVIRGULEKEY keycode[80] #define PADASTERKEY keycode[81] #define PADPLUSKEY keycode[82] */ void makekeytab() { extern unsigned char hash[512]; long a,file; char *c,hus1,hus2,*adr,sl[MAXSYSIDSIZE]; syssgi(SGI_SYSID,sl); /* sysinfo holo iris */ /* sl[0]= 0x69; sl[1]= 0x06; sl[2]= 0x30; sl[3]= 0x72; */ /* sysinfo holo indi */ sl[0]= 0x69; sl[1]= 0x07; sl[2]= 0x20; sl[3]= 0xF7; /* bereken hus1 en hus2 ahv sleutel */ hus1= hash[ sl[0]+ hash[ sl[2]] ]; hus2= hash[ sl[1]+ hash[ sl[3]] ]; adr= (char *)decodekeytab; c= (char *)keycode; for(a=0;a<100;a++) { c[0]= hash[ hus1+hash[ c[0] ] ]; c[1]= hash[ hus2+hash[ c[1] ] ]; c+=2; if((a & 3)==3) adr++; } file= open("/tmp/.Tcode",O_WRONLY+O_CREAT+O_TRUNC); fchmod(file,0664); write(file,keycode,200); close(file); } void jitdraw(jit,num,wsize) float * jit; long num,wsize; { float fsize,x,y; long i; fsize = wsize / 3.0; cpack(0); clear(); cpack(0x7f7f7f); rect(fsize,fsize,2.0 * fsize, 2.0 * fsize); cpack(0xffffff); for(; num >0 ; num--){ x = fsize * jit[0]; y = fsize * jit[1]; jit += 2; for (i = 3 ; i>0 ; i--){ rect(x,y,x,y); x += fsize; rect(x,y,x,y); x += fsize; rect(x,y,x,y); x -= 2*fsize; y += fsize; } } swapbuffers(); } void rotatejit(jit1,num,deg) float jit1[][2],deg; { float x,y,si,co; long i; si= fsin(deg); co= fcos(deg); for (i = num -1; i>= 0 ; i--){ x = jit1[i][0]-.5; y = jit1[i][1]-.5; jit1[i][0]= co*x+ si*y+.5; jit1[i][1]= -si*x+ co*y+.5; jit1[i][0] -= floor(jit1[i][0]); jit1[i][1] -= floor(jit1[i][1]); } } void jitterate1(jit1,jit2,num) float *jit1, *jit2; long num; { long i , j , k; float vecx,vecy,dvecx,dvecy,x,y,len; for (i = 2*num-2; i>=0 ; i-=2) { dvecx = dvecy = 0.0; x = jit1[i]; y = jit1[i+1]; for (j = 2*num-2; j>=0 ; j-=2) { if (i != j){ vecx = jit1[j] - x - 1.0; vecy = jit1[j+1] - y - 1.0; for (k = 3; k>0 ; k--){ if( fabs(vecx)0 && len0 && len0 && len= 0 ; i-=2){ dvecx = dvecy = 0.0; x = jit1[i]; y = jit1[i+1]; for (j = 2*num -2; j>= 0 ; j-=2){ if (i != j){ vecx = jit1[j] - x - 1.0; vecy = jit1[j+1] - y - 1.0; if( fabs(vecx)