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

control_3d.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= control_3d.h                                              Abril de 2003 =
00003 //=-------------------------------------------------------------------------=
00004 //= <descripcion del modulo>                                                =
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 //= Copyright (c), 1997-2003.                                               =
00021 //===========================================================================
00022 
00023 #include "jed_defs.h"
00024 #include "entidad.h"
00025 #include "vector.h"
00026 #include "toolkits/entorno/jed_evnt.h"
00027 #include "toolkits/geom/geometria.h"
00028 #include "framework/gui/jed_gui.h"
00029 
00030 enum ENUM_MODOS_CONTROL_3D {
00031     EMC3D_DESACTIVADO = 0,
00032     EMC3D_SELECCIONAR_RECUADRO,
00033     EMC3D_SELECCIONAR_ELIPSOIDE,
00034     EMC3D_SELECCIONAR_LIBRE,
00035     EMC3D_SELECCIONAR_Y_TRANSLADAR,
00036     EMC3D_SELECCIONAR_Y_ROTAR,
00037     EMC3D_SELECCIONAR_Y_ESCALAR,
00038     EMC3D_FIN
00039 };
00040 
00041 class CONTROL_3D : public CONTROLADOR_DE_ENTIDAD {
00042   protected:
00043     JED_INTERFACE **_Padre;
00044   public:
00045     CONTROL_3D(JED_INTERFACE **p);
00046     virtual ~CONTROL_3D();
00047     virtual void actualizar(ENTIDAD *Entidad) = 0;
00048 #ifdef GL_ENABLED
00049     virtual void pintar_gl(CALIDAD_VISUAL *Calidad, MATERIAL* Material, CAMARA *Camara) = 0;
00050 #endif
00051     virtual BOOLEAN procesar_mouse(EVENTO_GUI *e) = 0;
00052     virtual void crear(REPOSITORIO_DE_ENTIDADES *Repositorio, char *nombre) = 0;
00053 };
00054 
00055 class CONTROL_3D_VECTOR;
00056 
00063 class GIZMO_3D_IMPLEMENTADOR {
00064   protected:
00065     CONTROL_3D_VECTOR *_Padre;
00066   public: // Es public, solo para la clase CONTROL_3D_VECTOR
00067   //private:
00068   //friend class CONTROL_3D_VECTOR;
00069 
00070     GIZMO_3D_IMPLEMENTADOR(CONTROL_3D_VECTOR *in_Padre);
00071     virtual ~GIZMO_3D_IMPLEMENTADOR();
00072 #ifdef GL_ENABLED
00073     virtual void pintar_gl(CALIDAD_VISUAL *Calidad, 
00074                MATERIAL* Material, CAMARA *Camara) = 0;
00075 #endif
00076     virtual BOOLEAN procesar_mouse(EVENTO_GUI *e) = 0;
00077 };
00078 
00102 class GIZMO_3D_TRANSLACION_3DSMAX : public GIZMO_3D_IMPLEMENTADOR {
00103   private:
00108     int _zona_seleccionada_temporal;
00109 
00114     int _zona_seleccionada_permanente;
00115 
00116   public: // Es public, solo para la clase CONTROL_3D_VECTOR
00117   //private:
00118   //friend class CONTROL_3D_VECTOR;
00119 
00120     GIZMO_3D_TRANSLACION_3DSMAX(CONTROL_3D_VECTOR *in_Padre);
00121     ~GIZMO_3D_TRANSLACION_3DSMAX();
00122 #ifdef GL_ENABLED
00123     void
00124     pintar_gl(CALIDAD_VISUAL *Calidad, MATERIAL* Material, CAMARA *Camara);
00125 #endif
00126     BOOLEAN procesar_mouse(EVENTO_GUI *e);
00127 };
00128 
00135 class CONTROL_3D_VECTOR : public CONTROL_3D {
00136   private:
00137     int funcion; 
00138     VECTOR _valor;
00139     ENTIDAD *Entidad_controlada;
00140     char *_nombre_subvariable;
00141     FLECHA *_Eje;
00142     FLECHA *_Eje_gravedad;
00143     BOOLEAN _boton1_mouse_abajo;
00144     CAMARA *_Ultima_camara;
00145     GIZMO_3D_IMPLEMENTADOR *_Implementador;
00146 
00147   public:
00148     CONTROL_3D_VECTOR(JED_INTERFACE **p);
00149     virtual ~CONTROL_3D_VECTOR();
00150 
00151     void actualizar(ENTIDAD *Entidad);
00152 #ifdef GL_ENABLED
00153     void
00154     pintar_gl(CALIDAD_VISUAL *Calidad, MATERIAL* Material, CAMARA *Camara);
00155 #endif
00156     BOOLEAN procesar_mouse(EVENTO_GUI *e);
00157     void crear(REPOSITORIO_DE_ENTIDADES *Repositorio, char *nombre);
00158     void set_valor(VECTOR val);
00159 
00160     friend class GIZMO_3D_IMPLEMENTADOR;
00161     friend class GIZMO_3D_TRANSLACION_3DSMAX;
00162 };
00163 
00164 //===========================================================================
00165 //= EOF                                                                     =
00166 //===========================================================================
00167 

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.