00001 //=========================================================================== 00002 //= particulas.h Abril del 2000 = 00003 //=-------------------------------------------------------------------------= 00004 //= Modelo de un sistema de particulas que simula un efecto de lluvia. = 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 //= Este programa esta basado en el modelo del ejemplo "rain" de Mesa, por = 00016 //= David Bucciarelli (tech.hmw@plus.it) = 00017 //=-------------------------------------------------------------------------= 00018 //= Autor original: Oscar J. Chavarro G. A.K.A. JEDILINK. Copyright (c), = 00019 //= 1997 - 2003, oscarchavarro@hotmail.com = 00020 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia = 00021 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la = 00022 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. = 00023 //=========================================================================== 00024 00025 #ifndef __PARTICULAS__ 00026 #define __PARTICULAS__ 00027 00028 #include "jed_gl.h" 00029 #include "vector.h" 00030 #include "arreglo.h" 00031 #include "toolkits/entorno/camara.h" 00032 #include "toolkits/util/parsero.h" 00033 00034 class PARTICULA { 00035 protected: 00036 VECTOR acc; 00037 VECTOR vel; 00038 VECTOR pos; 00039 VECTOR oldpos; 00040 00041 static VECTOR LIMITE_min; // OJO: Esto esta feo! (por los static's) 00042 static VECTOR LIMITE_max; 00043 static double LONGITUD_raya; 00044 00045 void init(void); 00046 00047 public: 00048 PARTICULA(); 00049 ~PARTICULA() {}; 00050 00051 static void set_limites(VECTOR min, VECTOR max); 00052 static void set_largo(double l); 00053 00054 #ifdef GL_ENABLED 00055 void pintar_gl(void); 00056 #endif 00057 00058 void actualizar(double); 00059 }; 00060 00061 class SISTEMA_DE_PARTICULAS { 00062 protected: 00063 ARREGLO <PARTICULA *> arr_particulas; 00064 double t; 00065 public: 00066 SISTEMA_DE_PARTICULAS(int num_particulas, double largo_particulas, 00067 VECTOR min, VECTOR max); 00068 ~SISTEMA_DE_PARTICULAS(); 00069 00070 #ifdef GL_ENABLED 00071 void pintar_gl(CAMARA *Camara); 00072 #endif 00073 void actualizar(double l); 00074 BOOLEAN leer(TOKENIZADOR *Sabiondo); 00075 }; 00076 00077 00078 #endif // __PARTICULAS__ 00079 00080 //=========================================================================== 00081 //= EOF = 00082 //=========================================================================== 00083