1:#ifndef REVOLUCION_H
   2:#define REVOLUCION_H
   3:
   4:#include "modelado.h"
   5:
   6:#define BOTON_PULSADO 1
   7:#define BOTON_NO_PULSADO 0
   8:
   9:/****************************************************************************************/
  10:/* Funcion de conversion de grados a radianes */
  11:#define  grad2rad(x)  ((float) (3.14159 * x) / 180.0)
  12:#define PASO 0.5 /* Definicion del paso para el movimiento del observador */
  13:
  14:#define WALK 1
  15:#define EXAMINAR 2
  16:#define FLY 3
  17:
  18:double ox=0.0, oy=0.0, oz=15.0; /* Posicion del observador */
  19:
  20:double ix=0.0, iy=0.0, iz=15.0-PASO; /* Posicion del punto de interes */
  21:int modo = WALK;
  22:/****************************************************************************************/
  23:
  24:GLuint escenario;
  25:
  26:
  27:#define DENTRO 1
  28:#define FUERA 0
  29:
  30:
  31:int botonIzquierdoPulsado = BOTON_NO_PULSADO;
  32:int botonDerechoPulsado = BOTON_NO_PULSADO;
  33:int botonMedioPulsado = BOTON_NO_PULSADO;
  34:int auxiliarPulsada;
  35:Punto3D pInicio, pFin;
  36:float alfa = 0.0f;
  37:float beta = 0.0f;
  38:float dx, dy, dz;
  39:float w, h;
  40:float Z; // La profundidad de las esquinas de la ventana
  41:float R2; // El radio al cuadrado
  42:float matriz[16]; // La matriz de rotacion
  43:float matrizActual[16] = {1.0f, 0.0f, 0.0f, 0.0f, //Ojo que las matrices se definen por columnas
  44:                    0.0f, 1.0f, 0.0f, 0.0f,
  45:                    0.0f, 0.0f, 1.0f, 0.0f,
  46:                    0.0f, 0.0f, 0.0f, 1.0f};
  47:
  48:float producto[16] = {1.0f, 0.0f, 0.0f, 0.0f, //Ojo que las matrices se definen por columnas
  49:                    0.0f, 1.0f, 0.0f, 0.0f,
  50:                    0.0f, 0.0f, 1.0f, 0.0f,
  51:                    0.0f, 0.0f, 0.0f, 1.0f};
  52:
  53:void display (void);
  54:void Key (unsigned char, int, int);
  55:void KeySpecial (int key, int x, int y);
  56:void TecladoAmpliado (int tecla, int x, int y);
  57:void inicializaIluminacion(void);
  58:void inicializaTeclado (void);
  59:void inicializaVista (void);
  60:void reshape (int width, int height);
  61:void inicializaVentana (int argc, char **argv);
  62:void pintaModelo (int argc, char **argv);
  63:void iniciaRaton(void);
  64:void botonRatonPulasado(int boton, int estado, int x, int y);
  65:void ratonMovido(int x, int y);
  66:int dentroVentana(int x, int y);
  67:
  68:#endif