functionsTest.H

00001 #include <GL/gl.h>
00002 #include <GL/glu.h>
00003 #include <SDL/SDL.h>
00004 
00005 #include "drawTest.H"
00006 #include "defineConj.H"
00007 
00008 int target_Pt3[2] = {4,6};
00009 int target_Pt2[4] = {1,2,3,5};
00010 int BO_L[2][2] = {{1,3},{0,2}};
00011 int BO_Sq[2][2] = {{0,2},{1,3}};
00012 int BO_Pt2[2][2] = {{0,2},{1,3}};
00013 int BO_Shapes[2][12] = {{0,1,2,3,7,8,9,10,15,16,19,20},
00014                         {4,5,6,11,12,13,14,17,18,21,22,23}};
00015 int target_dir;
00016 
00017 int msleep(int ms)
00018 {
00019   struct timeval timeout;
00020 
00021   timeout.tv_sec = ms / 1000;
00022   timeout.tv_usec = (ms % 1000) * 1000;
00023   if (select(0, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &timeout) < 0) {
00024     perror("usleep");
00025     return -1;
00026   }
00027   return 0;
00028 }
00029 
00030 int search(int tar)
00031 {
00032   int i,j;
00033 
00034   for(i=0;i<2;i++){
00035     for(j=0;j<12;j++){
00036       if(tar == BO_Shapes[i][j]){
00037         return(i);
00038       }
00039     }
00040   }
00041   printf("Error\n tar = %d\n", tar);
00042   exit(0);
00043 }
00044 
00045 
00046 int selection(int tar)
00047 {
00048   if(tar >= 0 && tar < 4)return 0; //target is Square
00049   else if(tar >=4 && tar < 8)return 1; //target is New
00050   else return 2; //target is L shape
00051 }
00052 
00053 void shuffle (int array[],int count)
00054 {
00055   int i,tmp,change,array2[400];
00056 
00057   srand((unsigned int)time(NULL));
00058 
00059   for (i = 0; i < count; ++i)
00060     array2[i]=array[i];
00061 
00062   for (i = 0; i < count; ++i) {
00063     change = rand() % count;
00064     tmp = array2[i];
00065     array2[i] = array2[change];
00066     array2[change] = tmp;
00067 
00068   }
00069 
00070   for( i = 0; i < count; i++ ){
00071     array[i]=array2[i];
00072   }
00073 }
00074 
00075 void fragStimuli(int stimuli[],int target_stim,int target_BO)
00076 {
00077 
00078   if(target_stim >= 0 && target_stim < 4){ //target is Square1
00079     //for(i=0;i<4;i++)stimuli[i]=3;
00080     if (target_BO == 0){
00081       target_dir = 0;
00082       stimuli[1]=3;
00083       stimuli[3]=3;
00084     }else{
00085       target_dir = 1;
00086       stimuli[0]=3;
00087       stimuli[2]=3;
00088     }
00089   }//else if(target_stim >=4 && target_stim < 8){ //target is Square2
00090   //for(i=4;i<7;i++)stimuli[i][target_type]=3;
00091   else if(target_stim == 4){target_dir = 1;stimuli[9]=3;}
00092   else if(target_stim == 5){target_dir = 0;stimuli[8]=3;}
00093   else if(target_stim == 6){target_dir = 3;stimuli[11]=3;}
00094   else if(target_stim == 7){target_dir = 2;stimuli[10]=3;}
00095   else if(target_stim == 8){target_dir = 0;stimuli[5]=3;}
00096   else if(target_stim == 9){target_dir = 1;stimuli[4]=3;}
00097   else if(target_stim == 10){target_dir = 2;stimuli[7]=3;}
00098   else if(target_stim == 11){target_dir = 3;stimuli[6]=3;}
00099   stimuli[target_stim] = 1;
00100 }
00101 
00102 void SelectStimuli(int stimuli, float Lcolor, float x, float y, float times)
00103 {
00104   float Newcolor;
00105 
00106   if(Lcolor ==1.0) Newcolor = 0.0;
00107   else Newcolor = 1.0;
00108 
00109   switch (stimuli){
00110   case 0: //Sq1. based on BO
00111     {
00112       draw_dist(1,x,y,Newcolor,times);
00113     }break; //end of "case 0:"
00114   case 1: //Sq1. based on BO right
00115     {
00116       draw_dist(0,x,y,Newcolor,times);
00117     }break; //end of "case 1:"
00118   case 2: //Sq1. based on BO right
00119     {
00120       draw_dist(3,x,y,Newcolor,times);
00121     }break; //end of "case 2:"
00122   case 3: //Sq1. based on BO right
00123     {
00124       draw_dist(2,x,y,Newcolor,times);
00125     }break; //end of "case 3:"
00126   case 4:
00127     { //New. based on BO left
00128       draw_L1(1,x,y,Newcolor,times);
00129       draw_New1(1,x,y,Lcolor,times);
00130     }break; //end of "case 4:"
00131   case 5:// New. based on BO left
00132     {
00133       draw_L1(0,x,y,Newcolor,times);
00134       draw_New1(0,x,y,Lcolor,times);
00135     }break; //end of "case 5:"
00136   case 6:// New. based on BO left
00137     {
00138       draw_L1(3,x,y,Newcolor,times);
00139       draw_New1(3,x,y,Lcolor,times);
00140     }break; //end of "case 6:"
00141   case 7: // New. based on BO left
00142     {
00143       draw_L1(2,x,y,Newcolor,times);
00144       draw_New1(2,x,y,Lcolor,times);
00145     }break; //end of "case 7:"
00146   case 8: // L. based on left
00147     {
00148       draw_Square1(0,x,y,Newcolor,times);
00149       draw_L1(0,x,y,Lcolor,times);
00150     }break; //end of "case 8:"
00151   case 9: // L. based on left
00152     {
00153       draw_Square1(1,x,y,Newcolor,times);
00154       draw_L1(1,x,y,Lcolor,times);
00155     }break; //end of "case 9:"
00156   case 10: // L. based on left
00157     {
00158       draw_Square1(2,x,y,Newcolor,times);
00159       draw_L1(2,x,y,Lcolor,times);
00160     }break; //end of "case 10:"
00161   case 11: // L. based on left
00162     {
00163       draw_Square1(3,x,y,Newcolor,times);
00164       draw_L1(3,x,y,Lcolor,times);
00165     }break; //end of "case 11:"
00166   default:
00167     {
00168     }break;
00169   } //end of "switch (stimuli)"
00170 
00171 }
00172 
00173 void Display_TargetShape(int target,int type)
00174 {
00175   glPushMatrix();
00176 
00177   switch (target){
00178   case 0:
00179     {//void draw_Target_1(int type, float x, float y, float color, float times) //Square Shape
00180       shape_Sq(type, 0.0, 0.0, 1.0, 2.0/(4.0*4.0));
00181     }break;
00182   case 1:
00183     {
00184       shape_New(type, 0.0, 0.0, 1.0, 2.0/(4.0*4.0));
00185     }break;
00186   case 2:
00187     {
00188       shape_L(type, 0.0, 0.0, 1.0, 2.0/(4.0*4.0));
00189     }break;
00190   }
00191 
00192   glPopMatrix();
00193 }
00194 
00195 void Display_TargetCon(int BO, int target,int type)
00196 {
00197   glPushMatrix();
00198 
00199   if(BO == 0){//BO right
00200     switch (target){
00201     case 0:
00202       {//void draw_Target_1(int type, float x, float y, float color, float times) //Square Shape
00203         blue_Sq(type, 0.0, 0.0, 1.0, 2.0/(4.0*4.0));
00204       }break;
00205     case 1:
00206       {
00207         blue_New(type, 0.0, 0.0, 1.0, 2.0/(4.0*4.0));
00208       }break;
00209     default:
00210       {
00211         blue_L(type, 0.0, 0.0, 1.0, 2.0/(4.0*4.0));
00212       }break;
00213     }
00214   }else { //BO left
00215     switch (target){
00216     case 0:
00217       {//void draw_Target_1(int type, float x, float y, float color, float times) //Square Shape
00218         red_Sq(type, 0.0, 0.0, 1.0, 2.0/(4.0*4.0));
00219       }break;
00220     case 1:
00221       {
00222         red_New(type, 0.0, 0.0, 1.0, 2.0/(4.0*4.0));
00223       }break;
00224     default:
00225       {
00226         red_L(type, 0.0, 0.0, 1.0, 2.0/(4.0*4.0));
00227       }break;
00228     }
00229   }
00230 
00231   glPopMatrix();
00232 }
00233 
00234 void Display_Blank(void)
00235 {
00236   glPushMatrix();
00237 
00238   glPopMatrix();
00239 }
00240 
00241 void Display_Con_L(int target_BO, int target_Shape,int target_stim,int target_type,int target_location,
00242                    int stimuli[], int array[], int place[][16], int trial, float hor[],float ver[],float color[])
00243      /* target is L shape and BO */
00244 {
00245   time_t timer;
00246   struct tm *t_st;
00247   int x;
00248   float noise_x,noise_y;
00249   int wait,anti_BO;
00250   int dist_location,dist_stim,dist_stim1,dist_stim2,dist_stim3;
00251 
00252   dist_stim1 = 0;dist_stim2 = 0;dist_stim3 = 0;
00253 
00254   time(&timer);
00255   t_st = localtime(&timer);
00256 
00257   if(target_BO == 0)anti_BO = 1;
00258   else anti_BO = 0;
00259 
00260   /***** Show only Fixation *****/
00261   glClearColor(BGC, BGC, BGC, 0);
00262   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00263   Display_TargetCon(target_BO,target_Shape,target_dir);//Display_TargetCon(int BO, int target,int type)
00264   SDL_GL_SwapBuffers();
00265 
00266   /***** Show Flash Fixation ******/
00267   for(wait = 0 ; wait < 5 ; wait++){
00268     glClearColor(BGC, BGC, BGC, 0);
00269     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00270     Display_TargetCon(target_BO,target_Shape,target_dir);
00271     SDL_GL_SwapBuffers();
00272     msleep(H_SLEEP);
00273     glClearColor(BGC, BGC, BGC, 0);
00274     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00275     Display_Blank();
00276     SDL_GL_SwapBuffers();
00277     msleep(H_SLEEP);
00278   }
00279 
00280   /*Draw Target*/
00281   noise_x = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00282   noise_y = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00283 
00284   glClearColor(BGC, BGC, BGC, 0);
00285   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00286   SelectStimuli(target_stim,color[target_location],hor[target_location]+noise_x,ver[target_location]+noise_y,2.0/(4.0*4.0));
00287 
00288   switch (target_stim){
00289   case (8):
00290     {
00291       dist_stim1 = 1;
00292       dist_stim2 = 5;
00293       dist_stim3 = 10;
00294     }break;
00295   case (9):
00296     {
00297       dist_stim1 = 0;
00298       dist_stim2 = 4;
00299       dist_stim3 = 11;
00300     }break;
00301 
00302   case (10):
00303     {
00304       dist_stim1 = 3;
00305       dist_stim2 = 7;
00306       dist_stim3 = 8;
00307     }break;
00308   case (11):
00309     {
00310       dist_stim1 = 2;
00311       dist_stim2 = 6;
00312       dist_stim3 = 9;
00313     }break;
00314   }
00315 
00316   for(x=0;x<4;x++){
00317     for(;;){
00318       dist_location = (t_st->tm_sec+rand())%16;
00319       if(array[dist_location]==0){
00320         noise_x = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00321         noise_y = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00322         SelectStimuli(dist_stim1,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00323         array[dist_location]=2;
00324         place[trial][dist_location]=dist_stim1;
00325         break;
00326       }
00327     }
00328   }
00329 
00330   for(x=0;x<2;x++){
00331     for(;;){
00332       dist_location = (t_st->tm_sec+rand())%16;
00333       if(array[dist_location]==0){
00334         noise_x = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00335         noise_y = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00336         SelectStimuli(dist_stim2,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00337         array[dist_location]=2;
00338         place[trial][dist_location]=dist_stim2;
00339         break;
00340       }
00341     }
00342   }
00343 
00344   for(x=0;x<2;x++){ //New
00345     for(;;){
00346       dist_location = (t_st->tm_sec+rand())%16;
00347       dist_stim = ((t_st->tm_sec+rand())%4)+4;
00348       //dist_type = (t_st->tm_sec+rand())%TYPE;
00349       if(array[dist_location]==0 && stimuli[dist_stim]==0 && dist_stim%2 == target_BO){
00350         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00351         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00352         SelectStimuli(dist_stim,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00353         array[dist_location]=2;
00354         place[trial][dist_location]=dist_stim;
00355         break;
00356       }
00357     }
00358   }
00359 
00360   for(x=0;x<4;x++){ //L
00361     for(;;){
00362       dist_location = (t_st->tm_sec+rand())%16;
00363       dist_stim = ((t_st->tm_sec+rand())%4)+8;
00364       //dist_type = (t_st->tm_sec+rand())%TYPE;
00365       if(array[dist_location]==0 && stimuli[dist_stim]==0 /*&& dist_stim%2 == target_BO*/){
00366         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00367         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00368         SelectStimuli(dist_stim3,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00369         array[dist_location]=2;
00370         place[trial][dist_location]=dist_stim;
00371         break;
00372       }
00373     }
00374   }
00375 
00376   for(x=0;x<3;x++){//square
00377     for(;;){
00378       dist_location = (t_st->tm_sec+rand())%16;
00379       dist_stim = (t_st->tm_sec+rand())%4;
00380       //dist_type = (t_st->tm_sec+rand())%TYPE;
00381       if(array[dist_location]==0 && stimuli[dist_stim]==0 && dist_stim%2 != target_BO){
00382         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00383         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00384         SelectStimuli(dist_stim,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00385         array[dist_location]=2;
00386         place[trial][dist_location]=dist_stim;
00387         break;
00388       }
00389     }
00390   }
00391   //Display_TargetCon(target_BO,target_Shape,target_dir);
00392   SDL_GL_SwapBuffers();
00393 }
00394 
00395 void Display_Con_Sq(int target_BO, int target_Shape,int target_stim,int target_type,int target_location,
00396                     int stimuli[], int array[], int place[][16], int trial, float hor[],float ver[],float color[])
00397      /* target is L shape and BO */
00398 {
00399   time_t timer;
00400   struct tm *t_st;
00401   int x;
00402   float noise_x,noise_y;
00403   int wait;
00404   int dist_location,dist_stim,anti_BO;
00405 
00406 
00407   time(&timer);
00408   t_st = localtime(&timer);
00409 
00410   if(target_BO == 0)anti_BO = 1;
00411   else anti_BO = 0;
00412 
00413   /***** Show only Fixation *****/
00414   glClearColor(BGC, BGC, BGC, 0);
00415   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00416   Display_TargetCon(target_BO,target_Shape,target_type);//Display_TargetCon(int BO, int target,int type)
00417   SDL_GL_SwapBuffers();
00418 
00419 
00420   /***** Show Flash Fixation ******/
00421   for(wait = 0 ; wait < 5 ; wait++){
00422     glClearColor(BGC, BGC, BGC, 0);
00423     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00424     Display_TargetCon(target_BO,target_Shape,target_type);
00425     SDL_GL_SwapBuffers();
00426     msleep(H_SLEEP);
00427     glClearColor(BGC, BGC, BGC, 0);
00428     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00429     Display_Blank();
00430     SDL_GL_SwapBuffers();
00431     msleep(H_SLEEP);
00432   }
00433 
00434   /*Draw Target*/
00435   noise_x = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00436   noise_y = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00437 
00438   glClearColor(BGC, BGC, BGC, 0);
00439   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00440   SelectStimuli(target_stim,color[target_location],hor[target_location]+noise_x,ver[target_location]+noise_y,2.0/(4.0*4.0));
00441   //dist_type = target_type;
00442 
00443   for(x=0;x<5;x++){//square
00444     for(;;){
00445       dist_location = (t_st->tm_sec+rand())%16;
00446       dist_stim = (t_st->tm_sec+rand())%4;
00447       //dist_type = (t_st->tm_sec+rand())%TYPE;
00448       if(array[dist_location]==0 && stimuli[dist_stim]==0){
00449         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00450         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00451         SelectStimuli(dist_stim,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00452         array[dist_location]=2;
00453         place[trial][dist_location]=dist_stim;
00454         break;
00455       }
00456     }
00457   }
00458 
00459   for(x=0;x<5;x++){ //New
00460     for(;;){
00461       dist_location = (t_st->tm_sec+rand())%16;
00462       dist_stim = ((t_st->tm_sec+rand())%4)+4;
00463       //dist_type = (t_st->tm_sec+rand())%TYPE;
00464       if(array[dist_location]==0 && stimuli[dist_stim]==0){
00465         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00466         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00467         SelectStimuli(dist_stim,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00468         array[dist_location]=2;
00469         place[trial][dist_location]=dist_stim;
00470         break;
00471       }
00472     }
00473   }
00474 
00475   for(x=0;x<5;x++){ //L
00476     for(;;){
00477       dist_location = (t_st->tm_sec+rand())%16;
00478       dist_stim = ((t_st->tm_sec+rand())%4)+8;
00479       //dist_type = (t_st->tm_sec+rand())%TYPE;
00480       if(array[dist_location]==0 && stimuli[dist_stim]==0 && dist_stim%2 == target_BO){
00481         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00482         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00483         SelectStimuli(dist_stim,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00484         array[dist_location]=2;
00485         place[trial][dist_location]=dist_stim;
00486         break;
00487       }
00488     }
00489   }
00490 
00491   //Display_TargetCon(target_BO,target_Shape,target_type);
00492   SDL_GL_SwapBuffers();
00493 }
00494 
00495 void Display_Con_New(int target_BO, int target_Shape,int target_stim,int target_type,int target_location,
00496                      int stimuli[], int array[], int place[][16],int trial,float hor[],float ver[],float color[])
00497      /* target is New shape and BO */
00498 {
00499   time_t timer;
00500   struct tm *t_st;
00501   int x;
00502   float noise_x,noise_y;
00503   int i,wait;
00504   int dist_location,dist_stim1,dist_stim2,anti_BO;
00505 
00506   dist_stim1 = 0;dist_stim2 = 0;
00507 
00508   time(&timer);
00509   t_st = localtime(&timer);
00510 
00511   if(target_BO == 0)anti_BO = 1;
00512   else anti_BO = 0;
00513 
00514   /***** Show only Fixation *****/
00515   glClearColor(BGC, BGC, BGC, 0);
00516   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00517   Display_TargetCon(target_BO,target_Shape,target_dir);//Display_TargetCon(int BO, int target,int type)
00518   SDL_GL_SwapBuffers();
00519 
00520   /***** Show Flash Fixation ******/
00521   for(wait = 0 ; wait < 5 ; wait++){
00522     glClearColor(BGC, BGC, BGC, 0);
00523     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00524     Display_TargetCon(target_BO,target_Shape,target_dir);
00525     SDL_GL_SwapBuffers();
00526     msleep(H_SLEEP);
00527     glClearColor(BGC, BGC, BGC, 0);
00528     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00529     Display_Blank();
00530     SDL_GL_SwapBuffers();
00531     msleep(H_SLEEP);
00532   }
00533 
00534   /*Draw Target*/
00535   noise_x = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00536   noise_y = ((t_st->tm_sec+rand())%11-5.0)/100.0;
00537   glClearColor(BGC, BGC, BGC, 0);
00538   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00539   SelectStimuli(target_stim,color[target_location],hor[target_location]+noise_x,ver[target_location]+noise_y,2.0/(4.0*4.0));
00540   //void SelectStimuli(int stimuli, int type, float Lcolor, float x, float y, float times)
00541 
00542   switch (target_stim){
00543   case (4):
00544     {
00545       dist_stim1 = 9;
00546     }break;
00547   case (5):
00548     {
00549       dist_stim1 = 8;
00550     }break;
00551   case (6):
00552     {
00553       dist_stim1 = 11;
00554     }break;
00555   case (7):
00556     {
00557       dist_stim1 = 10;
00558     }break;
00559   }
00560 
00561   for(i = 0 ;i < 4; i++){ //same shape
00562     for(;;){
00563       dist_location = (t_st->tm_sec+rand())%16;
00564       if(array[dist_location]==0){
00565         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00566         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00567         SelectStimuli(dist_stim1,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00568         array[dist_location]=2;
00569         place[trial][dist_location]=dist_stim1;
00570         break;
00571       }
00572     }
00573   }
00574 
00575   for(x=0;x<4;x++){//New
00576     for(;;){
00577       dist_location = (t_st->tm_sec+rand())%16;
00578       dist_stim2 = 4+(t_st->tm_sec+rand())%4;
00579       //dist_type = (t_st->tm_sec+rand())%TYPE;
00580       if(array[dist_location]==0 && stimuli[dist_stim2]==0 && dist_stim2%2 != target_BO){
00581         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00582         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00583         SelectStimuli(dist_stim2,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00584         array[dist_location]=2;
00585         place[trial][dist_location]=dist_stim2;
00586         break;
00587       }
00588     }
00589   }
00590 
00591   for(x=0;x<3;x++){//L
00592     for(;;){
00593       dist_location = (t_st->tm_sec+rand())%16;
00594       dist_stim2 = 8+(t_st->tm_sec+rand())%4;
00595       //dist_type = (t_st->tm_sec+rand())%TYPE;
00596       if(array[dist_location]==0 && stimuli[dist_stim2]==0 && dist_stim2 != dist_stim1){
00597         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00598         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00599         SelectStimuli(dist_stim2,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00600         array[dist_location]=2;
00601         place[trial][dist_location]=dist_stim2;
00602         break;
00603       }
00604     }
00605   }
00606 
00607   for(x=0;x<4;x++){//square
00608     for(;;){
00609       dist_location = (t_st->tm_sec+rand())%16;
00610       dist_stim2 = (t_st->tm_sec+rand())%4;
00611       //dist_type = (t_st->tm_sec+rand())%TYPE;
00612       if(array[dist_location]==0 && stimuli[dist_stim2]==0 && dist_stim2 != dist_stim1){
00613         noise_x = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00614         noise_y = (((t_st->tm_sec+rand())%11)-5.0)/100.0;
00615         SelectStimuli(dist_stim2,color[dist_location],hor[dist_location]+noise_x,ver[dist_location]+noise_y,2.0/(4.0*4.0));
00616         array[dist_location]=2;
00617         place[trial][dist_location]=dist_stim2;
00618         break;
00619       }
00620     }
00621   }
00622   //Display_TargetCon(target_BO,target_Shape,target_dir);
00623   SDL_GL_SwapBuffers();
00624 }
00625 
00626 void Display_Conjunction(int target_BO, int target_Shape,int target_stim,int target_type,
00627                          int target_location, int stimuli[], int array[], int place[][16], int trial,
00628                          float hor[],float ver[],float color[])
00629 {
00630   if(target_Shape == 0){ //target is Square
00631     Display_Con_Sq(target_BO, target_Shape,target_stim,target_type,target_location,stimuli,
00632                    array,place,trial,hor,ver,color);
00633   }else if(target_Shape == 1){ //target is Pt2
00634     Display_Con_New(target_BO, target_Shape,target_stim,target_type,target_location,stimuli,
00635                     array,place,trial,hor,ver,color);
00636   }else if(target_Shape == 2){ //target is L shape
00637     Display_Con_L(target_BO, target_Shape,target_stim,target_type,target_location,stimuli,
00638                   array,place,trial,hor,ver,color);
00639   }
00640 }
00641 
00642 void Display_Calibration(int state_calib, int calib[9])
00643 {
00644   int i,check;
00645   time_t timer;
00646   struct tm *t_st;
00647 
00648   time(&timer);
00649   t_st = localtime(&timer);
00650   //printf("state_calib = %d\n",state_calib);
00651 
00652   if(state_calib == 0 || state_calib == 2){
00653     //printf("state = %d\n",state_calib);
00654     glClearColor(BGC, BGC, BGC, 0);
00655     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00656     Display_Fixation();
00657     SDL_GL_SwapBuffers();
00658   }
00659   else if(state_calib == 1){
00660     glClearColor(BGC, BGC, BGC, 0);
00661     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00662     //Display_Blank();
00663     Display_Fixation();
00664     SDL_GL_SwapBuffers();
00665     msleep(F_SLEEP);
00666     glClearColor(BGC, BGC, BGC, 0);
00667     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00668     Display_CalibPoints();
00669     SDL_GL_SwapBuffers();
00670   }else if(state_calib >= 3 && state_calib <= 11){
00671     for(;;){
00672       check = ((t_st->tm_sec+rand())%9);
00673       if(calib[check]==0){
00674         calib[check]=1;
00675         break;
00676       }
00677     }
00678 
00679     for(i=0;i<5;i++){
00680       msleep(CALIB);
00681       glClearColor(BGC, BGC, BGC, 0);
00682       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00683       Display_Blank();
00684       SDL_GL_SwapBuffers();
00685       msleep(CALIB);
00686       glClearColor(BGC, BGC, BGC, 0);
00687       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00688       Display_Fixation();
00689       SDL_GL_SwapBuffers();
00690     }
00691     //printf("state_calib = %d\n",state_calib);
00692     switch (check){
00693     case 0:{
00694       for(i=0;i<5;i++){
00695         //msleep(CALIB);
00696         glClearColor(BGC, BGC, BGC, 0);
00697         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00698         //Display_Fixation();
00699         Display_Calib1();
00700         SDL_GL_SwapBuffers();
00701         msleep(CALIB);
00702         glClearColor(BGC, BGC, BGC, 0);
00703         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00704         Display_Blank();
00705         //Display_Fixation();
00706         SDL_GL_SwapBuffers();
00707         msleep(CALIB);
00708       }
00709       break;
00710     }
00711     case 1:{
00712       for(i=0;i<5;i++){
00713         //msleep(CALIB);
00714         glClearColor(BGC, BGC, BGC, 0);
00715         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00716         Display_Calib2();
00717         //Display_Fixation();
00718         SDL_GL_SwapBuffers();
00719         msleep(CALIB);
00720         glClearColor(BGC, BGC, BGC, 0);
00721         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00722         Display_Blank();
00723         //Display_Fixation();
00724         SDL_GL_SwapBuffers();
00725         msleep(CALIB);
00726       }
00727       break;
00728     }
00729     case 2:{
00730       for(i=0;i<5;i++){
00731         //msleep(CALIB);
00732         glClearColor(BGC, BGC, BGC, 0);
00733         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00734         Display_Calib3();
00735         //Display_Fixation();
00736         SDL_GL_SwapBuffers();
00737         msleep(CALIB);
00738         glClearColor(BGC, BGC, BGC, 0);
00739         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00740         Display_Blank();
00741         //Display_Fixation();
00742         SDL_GL_SwapBuffers();
00743         msleep(CALIB);
00744       }
00745       break;
00746     }
00747     case 3:{
00748       for(i=0;i<5;i++){
00749         //msleep(CALIB);
00750         glClearColor(BGC, BGC, BGC, 0);
00751         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00752         Display_Calib4();
00753         //Display_Fixation();
00754         SDL_GL_SwapBuffers();
00755         msleep(CALIB);
00756         glClearColor(BGC, BGC, BGC, 0);
00757         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00758         Display_Blank();
00759         //Display_Fixation();
00760         SDL_GL_SwapBuffers();
00761         msleep(CALIB);
00762       }
00763       break;
00764     }
00765     case 4:{
00766       for(i=0;i<5;i++){
00767         //msleep(CALIB);
00768         glClearColor(BGC, BGC, BGC, 0);
00769         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00770         Display_Calib5();
00771         //Display_Fixation();
00772         SDL_GL_SwapBuffers();
00773         msleep(CALIB);
00774         glClearColor(BGC, BGC, BGC, 0);
00775         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00776         Display_Blank();
00777         //Display_Fixation();
00778         SDL_GL_SwapBuffers();
00779         msleep(CALIB);
00780       }
00781     break;
00782     }
00783     case 5:{
00784       for(i=0;i<5;i++){
00785         //msleep(CALIB);
00786         glClearColor(BGC, BGC, BGC, 0);
00787         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00788         Display_Calib6();
00789         //Display_Fixation();
00790         SDL_GL_SwapBuffers();
00791         msleep(CALIB);
00792         glClearColor(BGC, BGC, BGC, 0);
00793         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00794         Display_Blank();
00795         //Display_Fixation();
00796         SDL_GL_SwapBuffers();
00797         msleep(CALIB);
00798     }
00799       break;
00800     }
00801     case 6:{
00802       for(i=0;i<5;i++){
00803         //msleep(CALIB);
00804         glClearColor(BGC, BGC, BGC, 0);
00805         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00806         Display_Calib7();
00807         //Display_Fixation();
00808         SDL_GL_SwapBuffers();
00809         msleep(CALIB);
00810         glClearColor(BGC, BGC, BGC, 0);
00811         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00812         Display_Blank();
00813         //Display_Fixation();
00814         SDL_GL_SwapBuffers();
00815         msleep(CALIB);
00816       }
00817       break;
00818     }
00819     case 7:{
00820       for(i=0;i<5;i++){
00821         //msleep(CALIB);
00822         glClearColor(BGC, BGC, BGC, 0);
00823         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00824         Display_Calib8();
00825         //Display_Fixation();
00826         SDL_GL_SwapBuffers();
00827         msleep(CALIB);
00828         glClearColor(BGC, BGC, BGC, 0);
00829         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00830         Display_Blank();
00831         //Display_Fixation();
00832         SDL_GL_SwapBuffers();
00833         msleep(CALIB);
00834     }
00835       break;
00836     }
00837     case 8:{
00838       for(i=0;i<5;i++){
00839         //msleep(CALIB);
00840         glClearColor(BGC, BGC, BGC, 0);
00841         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00842         Display_Calib9();
00843         //Display_Fixation();
00844         SDL_GL_SwapBuffers();
00845         msleep(CALIB);
00846         glClearColor(BGC, BGC, BGC, 0);
00847         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00848         Display_Blank();
00849         //Display_Fixation();
00850         SDL_GL_SwapBuffers();
00851         msleep(CALIB);
00852       }
00853       break;
00854     }
00855     default:break;
00856     }
00857     glClearColor(BGC, BGC, BGC, 0);
00858     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00859     //Display_Blank();
00860     Display_Fixation();
00861     SDL_GL_SwapBuffers();
00862   }else if(state_calib == 12){
00863     glClearColor(BGC, BGC, BGC, 0);
00864     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00865     //Display_Blank();
00866     Display_Fixation();
00867     SDL_GL_SwapBuffers();
00868     msleep(F_SLEEP);
00869     glClearColor(BGC, BGC, BGC, 0);
00870     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00871     Display_PointsF();
00872     SDL_GL_SwapBuffers();
00873   }
00874 }
Generated on Sun May 8 08:40:21 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3