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