00001 //=========================================================================== 00002 //= espacio.h Julio de 1998 = 00003 //=-------------------------------------------------------------------------= 00004 //= Definiciones de la clase ESPACIO = 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 __ESPACIO__ 00023 #define __ESPACIO__ 00024 00025 #include "jed_defs.h" // Incluir antes que nada, en ese modulo se definen 00026 // aspectos importantes para la portabilidad del sistema 00027 #include "core/cosas/cosa.h" 00028 #include "core/cosas/medio.h" 00029 #include "arreglo.h" 00030 00031 class ESPACIO : public COSA_RIGIDA { 00032 private: 00033 LISTA <COSA*> lista_cosas; 00034 00035 protected: 00036 MEDIO *Medio; 00037 00038 public: 00039 ESPACIO(); 00040 ~ESPACIO(); 00041 00042 void ingresar_cosa(COSA *c); 00043 //void eliminar_cosa(char *nombre_cosa); 00044 void simular(double delta_t); 00045 #ifdef GL_ENABLED 00046 virtual void pintar_gl(CALIDAD_VISUAL *Calidad, CAMARA *Camara) = 0; 00047 #endif 00048 virtual double interseccion(RAYO *Rayo, VECTOR *Punto, VECTOR *Normal); 00049 00050 //- Nuevos servicios, especificos de las clases ESPACIO ----------------- 00051 virtual void 00052 anexar_objetos_rayables(ARREGLO <OBJETO_RAYABLE *> &arr_objetos); 00053 virtual void actualizar_espacio(double dt); 00054 #ifdef GL_ENABLED 00055 BOOLEAN segundo_pase_gl_requerido(CALIDAD_VISUAL *Calidad_caustics, 00056 MATERIAL *Material_caustics); 00057 #endif 00058 }; 00059 00060 #ifndef VEL_ROSITA 00061 #include "core/cosas/e_abierto.h" 00062 #endif 00063 00064 #endif // __ESPACIO__ 00065 00066 //=========================================================================== 00067 //= EOF = 00068 //=========================================================================== 00069