00001 //=========================================================================== 00002 //= medio.h Abril del 2000 = 00003 //=-------------------------------------------------------------------------= 00004 //= Elementos de la clase MEDIO = 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 __MEDIO__ 00023 #define __MEDIO__ 00024 00025 #include "jed_defs.h" // Incluir antes que nada, en ese modulo se definen 00026 // aspectos importantes para la portabilidad del sistema 00027 00028 #include "toolkits/util/parsero.h" 00029 #include "toolkits/entorno/calidad_v.h" 00030 #include "toolkits/entorno/camara.h" 00031 #include "toolkits/entorno/material.h" 00032 #include "toolkits/media/jed_img.h" 00033 #include "core/campos/campo.h" 00034 #include "core/cosas/particulas.h" 00035 #include "color.h" 00036 00037 class MEDIO { 00038 private: 00039 BOOLEAN preprocesada; 00040 00041 //- Efecto de niebla ---------------------------------------------------- 00042 BOOLEAN tengo_niebla; // Parametros de la niebla 00043 COLOR color_niebla; 00044 double densidad_niebla; 00045 00046 //- Efecto de lluvia ---------------------------------------------------- 00047 SISTEMA_DE_PARTICULAS *Lluvia; 00048 00049 //- Efecto de caustics -------------------------------------------------- 00050 int num_caustics; 00051 int caustic_actual; 00052 char *patron_caustics; 00053 LISTA <IMAGEN_PAL *> lista_caustics; 00054 00055 //----------------------------------------------------------------------- 00056 LISTA<CAMPO_VECTORIAL *> lista_campos_escalares; 00057 LISTA<CAMPO_ESCALAR *> 00058 lista_campos_vectoriales; // Incluye el de temperatura! 00059 00060 void init(void); 00061 00062 public: 00063 MEDIO(); 00064 ~MEDIO(); 00065 00066 #ifdef GL_ENABLED 00067 void activar_gl(CALIDAD_VISUAL *Calidad, CAMARA *Camara); 00068 BOOLEAN pre_pintar_gl(CALIDAD_VISUAL *Calidad, MATERIAL *Material); 00069 void post_pintar_gl(CALIDAD_VISUAL *Calidad, CAMARA *Camara); 00070 #endif 00071 BOOLEAN leer(TOKENIZADOR *Sabiondo); 00072 void set_densidad_niebla(double d); 00073 void set_niebla_activa(BOOLEAN f); 00074 void actualizar(double dt); 00075 }; 00076 00077 #endif // __MEDIO__ 00078 00079 //=========================================================================== 00080 //= EOF = 00081 //=========================================================================== 00082