00001 //=========================================================================== 00002 //= visor_g.h Julio de 1998 = 00003 //=-------------------------------------------------------------------------= 00004 //= Definicion de clase VISOR_GEOMETRIA = 00005 //=-------------------------------------------------------------------------= 00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO = 00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN = 00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES, = 00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO, = 00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO, = 00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA = 00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES = 00013 //= ("ACTIVIDADES DE ALGO RIESGO"). = 00014 //=-------------------------------------------------------------------------= 00015 //= Autor original: Oscar J. Chavarro G. A.K.A. JEDILINK. Copyright (c), = 00016 //= 1997 - 2003, oscarchavarro@hotmail.com = 00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia = 00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la = 00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. = 00020 //=========================================================================== 00021 00022 #ifndef __VISOR_GEOMETRIA__ 00023 #define __VISOR_GEOMETRIA__ 00024 #include "jed_defs.h" // Incluir antes que nada, en ese modulo se definen 00025 // aspectos importantes para la portabilidad del sistema 00026 #include "toolkits/geom/geometria.h" 00027 #include "toolkits/entorno/luz.h" 00028 #include "framework/visual/visor.h" 00029 00030 class VISOR_GEOMETRIA : public VISOR { 00031 private: 00032 GEOMETRIA *Geometria; // El objeto observado 00033 char *_nombre_cosa; // Nombre de la COSA que tiene esta geometria 00034 int modo_stereo; 00035 int _x_tam; 00036 int _y_tam; 00037 00038 LUZ luz1; // Descriptores de entorno para el objeto 00039 LUZ luz2; 00040 CALIDAD_VISUAL calidad; 00041 MATERIAL *Material; 00042 00043 QUATERNION orientacion; // Modificadores de interaccion 00044 BOOLEAN mostrar_grilla; 00045 BOOLEAN mostrar_ejes; 00046 BOOLEAN controlando_camara; // Control del mouse 00047 00048 void init(void); 00049 #ifdef GL_ENABLED 00050 void pintar_nucleo_gl(void); 00051 #endif 00052 00053 public: 00054 VISOR_GEOMETRIA(); 00055 VISOR_GEOMETRIA(GEOMETRIA *g); 00056 virtual ~VISOR_GEOMETRIA(); 00057 00058 char *nombre_cosa(void); 00059 void set_geometria(GEOMETRIA *g); 00060 #ifdef GL_ENABLED 00061 void pintar_gl(void); 00062 #endif 00063 int procesar_teclado(EVENTO_GUI *e); 00064 int procesar_mouse(EVENTO_GUI *e); 00065 void procesar_resize(int x, int y, int x_tam, int y_tam); 00066 00067 //- Operaciones de persistencia ----------------------------------------- 00068 virtual BOOLEAN leer(TOKENIZADOR *Sabiondo); 00069 00070 // Particulares de este visor 00071 CAMARA *get_camara(void); 00072 }; 00073 00074 #endif // __VISOR_GEOMETRIA__ 00075 00076 //=========================================================================== 00077 //= EOF = 00078 //=========================================================================== 00079