Página principal | Jerarquía de la clase | Lista alfabética | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

luz.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= luz.h                                                     Marzo de 1999 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definiciones de la clase LUZ.                                           =
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 __LUZ__
00023 #define __LUZ__
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 "entidad.h"
00028 #include "color.h"
00029 #include "quaternion.h"
00030 #include "toolkits/util/parsero.h"
00031 
00032 enum ENUM_TIPOS_DE_LUCES {
00033     TDL_DESCONOCIDO = 0,
00034     TDL_OMNIDIRECCIONAL,
00035     TDL_DIRECCIONAL
00036 };
00037 
00038 class LUZ : public ENTIDAD {
00039   private:
00040     // Elementos del modelo 
00041     int _tipo;          // Uno de los TIPOS_DE_LUCES
00042     COLOR _color;
00043     COLOR _color_sombras;
00044     VECTOR _posicion;
00045     QUATERNION _orientacion; // Solo para luces TDL_DIRECCIONAL
00046     double _angulo;    // Dentro del rango (0, 180], para luces TDL_DIRECCIONAL
00047     double _exponente_foco; // En el rango [0, 180], para luces TDL_DIRECCIONAL
00048 
00049     ENTIDAD *Padre;        // Una luz puede asociarse a una ENTIDAD!
00050     char *_nombre_padre;
00051 
00052     int id;
00053 
00054     // Elementos de estado de la instancia
00055     BOOLEAN necesito_actualizarme;
00056   public:
00057     //- Operaciones basicas ------------------------------------------------
00058     LUZ();
00059     virtual ~LUZ();
00060 
00061     void set_id(int i);
00062     inline VECTOR posicion(void);
00063     inline void set_posicion(VECTOR p);
00064     void set_color_sombras(COLOR c);
00065     char *nombre_padre(void);
00066     void asociar_padre(ENTIDAD *p);
00067 
00068     //- Operaciones de visualizacion ---------------------------------------
00069   #ifdef GL_ENABLED
00070     void activar_gl(void);
00071   #endif
00072     void activar_povray(FILE *fd);
00073 
00074     //- Operaciones de persistencia ----------------------------------------
00075     BOOLEAN leer(TOKENIZADOR *Sabiondo);
00076 };
00077 
00078 inline VECTOR
00079 LUZ::posicion(void)
00080 {
00081     return _posicion;
00082 }
00083 
00084 inline void
00085 LUZ::set_posicion(VECTOR p)
00086 {
00087     _posicion = p;
00088 }
00089 
00090 #endif //__LUZ__
00091 
00092 //===========================================================================
00093 //= EOF                                                                     =
00094 //===========================================================================
00095 

Este archivo HTML ha sido generado automáticamente a partir del código fuente AQUYNZA. NO LO EDITE. Para mayor información contacte al autor.