/** void seleccionColor( int boton, int estado, int x, int y) Función de gestion de eventos de raton del icono de paleta de colores Argumentos: boton: Codigo glut del boton que ha manipulado el usuario. estado: Estado en el que esta el boton que se ha pulsado. x,y: Posicion, en coordenadas de pantalla, en que se encuantra el cursor. Efecto: Modifica la variable local color **/ void seleccionColor( int boton, int estado, int x, int y) { int kx,ky,color; if(boton== GLUT_LEFT_BUTTON && estado == GLUT_DOWN) { kx= (x-6)/18; ky= (y-6)/18; if(kx<0 || ky<0||kx>2||ky>2) return; color=kx+(2-ky)*3; // ------------ Inserta codigo de asignación de color aqui gluiPostRedisplay(); } }
/** void seleccionaPalancas( int boton, int estado, int x, int y) Función de gestion de eventos de pulsacion de raton del icono de paleta de colores Argumentos: boton: Codigo glut del boton que ha manipulado el usuario. estado: Estado en el que esta el boton que se ha pulsado. x,y: Posicion, en coordenadas de pantalla, en que se encuantra el cursor. Efecto: Modifica el identificador de la ultima palanca usada (kold) **/ void seleccionaPalancas( int boton, int estado, int x, int y) { int k; if(boton== GLUT_LEFT_BUTTON && estado == GLUT_DOWN) { k= (x/64.0) * (nPalancas+1) -0.5; if(k<nPalancas && k>-1) { if(k==kold) Palanca[k]= (y-32)/32.0; kold=k; } else k=-1; glutPostRedisplay(); gluiPostRedisplay(); } else k=-1; }
/** void muevePalanca( int x, int y) Función de gestion de eventos de movimiento de raton del icono de paleta de colores Argumentos: x,y: Posicion, en coordenadas de pantalla, en que se encuantra el cursor. Efecto: Modifica el valor de altura de la ultima palanca usada (kold), que se encuentra en Palanca[kold]. El valor esta entre -1 y 1 **/ void muevePalanca( int x, int y) { int k; k= (x/64.0) * (nPalancas+1) -0.5; if(k<nPalancas && k>-1 && k==kold) { Palanca[k]= (y-32)/32.0; if(Palanca[k]>1) Palanca[k]= 1; if(Palanca[k]<-1) Palanca[k]= -1; if(Palanca[k]<0.1 && Palanca[k]>-0.1) Palanca[k]=0; /* if(k==0) // velocidad giro grua =Palanca[0]; else if(k==1) // velocidad pluma =Palanca[1]; else if(k==2) // velocidad cuerda =Palanca[2]; */ glutPostRedisplay(); gluiPostRedisplay(); } }
/** void seleccionaPalancas( int boton, int estado, int x, int y) Función de gestion de eventos de pulsacion de raton del icono de paleta de colores Argumentos: boton: Codigo glut del boton que ha manipulado el usuario. estado: Estado en el que esta el boton que se ha pulsado. x,y: Posicion, en coordenadas de pantalla, en que se encuantra el cursor. Efecto: Modifica el identificador de la ultima palanca usada (kold) **/ void seleccionaPalancas( int boton, int estado, int x, int y) { int k; if(boton== GLUT_LEFT_BUTTON && estado == GLUT_DOWN) { k= (x/64.0) * (nPalancas+1) -0.5; if(k<nPalancas && k>-1) { if(k==kold) Palanca[k]= (y-32)/32.0; kold=k; } else k=-1; /* if(k==0) // velocidad giro grua =Palanca[0]; else if(k==1) // velocidad pluma =Palanca[1]; else if(k==2) // velocidad cuerda =Palanca[2]; */ glutPostRedisplay(); gluiPostRedisplay(); } else k=-1; }
/** void seleccionColor( int boton, int estado, int x, int y) Función de gestion de eventos de raton del icono de paleta de colores Argumentos: boton: Codigo glut del boton que ha manipulado el usuario. estado: Estado en el que esta el boton que se ha pulsado. x,y: Posicion, en coordenadas de pantalla, en que se encuantra el cursor. Efecto: Modifica la variable local color **/ void seleccionColor( int boton, int estado, int x, int y) { int kx,ky,color; if(boton== GLUT_LEFT_BUTTON && estado == GLUT_DOWN) { kx= (x-6)/18; ky= (y-6)/18; if(kx<0 || ky<0||kx>2||ky>2) return; color=kx+(2-ky)*3; /* // ------------ Inserta codigo de asignación de color aqui if(estado==PintandoCajas && cajaElegida>-1) { cajasuelo[cajaElegida].color=color; } else colorActivo=color; */ gluiPostRedisplay(); } }
/** void muevePalanca( int x, int y) Función de gestion de eventos de movimiento de raton del icono de paleta de colores Argumentos: x,y: Posicion, en coordenadas de pantalla, en que se encuantra el cursor. Efecto: Modifica el valor de altura de la ultima palanca usada (kold), que se encuentra en Palanca[kold]. El valor esta entre -1 y 1 **/ void muevePalanca( int x, int y) { int k; k= (x/64.0) * (nPalancas+1) -0.5; if(k<nPalancas && k>-1 && k==kold) { Palanca[k]= (y-32)/32.0; if(Palanca[k]>1) Palanca[k]= 1; if(Palanca[k]<-1) Palanca[k]= -1; if(Palanca[k]<0.1 && Palanca[k]>-0.1) Palanca[k]=0; if(k==0){ if(Palanca[0]==0){ helic.velaltura = 0; helic.inclinacion = 0; } else{ helic.velaltura += Palanca[0]; helic.inclinacion = 0; } } else if(k==1){ if(Palanca[1]==0){ helic.avanza = 0; helic.giroangY = 0; helic.inclinacion = 0; } else{ helic.avanza = 0; helic.giroangY += Palanca[1]; helic.inclinacion = 0; } } else if(k==2){ if(Palanca[2]==0){ helic.gira = 0; helic.velangX = 0; helic.inclinacion = 0; } else{ helic.gira = 0; helic.velangX += Palanca[2]; helic.inclinacion = Palanca[2]; } } glutPostRedisplay(); gluiPostRedisplay(); } }