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

Referencia de la Clase GIZMO_3D_TRANSLACION_3DSMAX

Esta clase implementa operaciones para ser utilizadas desde la clase CONTROL_3D_VECTOR. Más...

#include <control_3d.h>

Diagrama de herencias de GIZMO_3D_TRANSLACION_3DSMAX

Inheritance graph
[leyenda]
Diagrama de colaboración para GIZMO_3D_TRANSLACION_3DSMAX:

Collaboration graph
[leyenda]
Lista de todos los miembros.

Métodos públicos

 GIZMO_3D_TRANSLACION_3DSMAX (CONTROL_3D_VECTOR *in_Padre)
 ~GIZMO_3D_TRANSLACION_3DSMAX ()
void pintar_gl (CALIDAD_VISUAL *Calidad, MATERIAL *Material, CAMARA *Camara)
 Pinta las 7 zonas sensibles / interactivas de la técnica de interacción 3D para translaciones AQUYNZA, en un estilo 3DSMax.

BOOLEAN procesar_mouse (EVENTO_GUI *e)
 Implementa la captura de eventos de mouse sobre las 7 zonas sensibles / interactivas de la técnica de interacción 3D para translaciones AQUYNZA, en un estilo 3DSMax.


Atributos privados

int _zona_seleccionada_temporal
 Es 0 si ninguna zona es seleccionada, o un número de 1 a 7 (inclusive) si se ha seleccionado alguna zona.

int _zona_seleccionada_permanente
 Es 0 si ninguna zona es seleccionada, o un número de 1 a 7 (inclusive) si se ha seleccionado alguna zona.


Descripción detallada

Esta clase implementa operaciones para ser utilizadas desde la clase CONTROL_3D_VECTOR.

Notese que solo esa clase puede usar esta, como parte de un patrón de diseńo de tipo bridge.

La clase está inspirada en el comportamiento de las herramientas interactivas 3D de sistemas como 3DStudio Max y Maya.

El "gizmo" o representación visual 3D interactiva de translación consta de 7 zonas interactivas "simples": 1. Una flecha que representa al vector unitario $\vec i = <1, 0, 0>$ 2. Una flecha que representa al vector unitario $\vec j = <0, 1, 0>$ 3. Una flecha que representa al vector unitario $\vec k = <0, 0, 1>$ 4. Un cuadrante, limitado por dos cilindros, que representa una zona de control asociada al plano XY 5. Un cuadrante, limitado por dos cilindros, que representa una zona de control asociada al plano XZ 6. Un cuadrante, limitado por dos cilindros, que representa una zona de control asociada al plano YZ 7. Un cubo, asociado a los tres ejes XYZ, para realizar translaciones relativas al plano de la superficie de proyección de la cámara

Definición en la línea 102 del archivo control_3d.h.


Documentación del constructor y destructor

GIZMO_3D_TRANSLACION_3DSMAX::GIZMO_3D_TRANSLACION_3DSMAX CONTROL_3D_VECTOR in_Padre  ) 
 

Definición en la línea 42 del archivo control_3d_vector.C.

References _zona_seleccionada_temporal.

GIZMO_3D_TRANSLACION_3DSMAX::~GIZMO_3D_TRANSLACION_3DSMAX  ) 
 

Definición en la línea 48 del archivo control_3d_vector.C.


Documentación de las funciones miembro

void GIZMO_3D_TRANSLACION_3DSMAX::pintar_gl CALIDAD_VISUAL Calidad,
MATERIAL Material,
CAMARA Camara
[virtual]
 

Pinta las 7 zonas sensibles / interactivas de la técnica de interacción 3D para translaciones AQUYNZA, en un estilo 3DSMax.

Implements GIZMO_3D_IMPLEMENTADOR.

Definición en la línea 55 del archivo control_3d_vector.C.

References CONTROL_3D_VECTOR::_Eje, GIZMO_3D_IMPLEMENTADOR::_Padre, _zona_seleccionada_temporal, FLECHA::pintar_gl(), y MATERIAL::set_difusa().

Here is the call graph for this function:

BOOLEAN GIZMO_3D_TRANSLACION_3DSMAX::procesar_mouse EVENTO_GUI e  )  [virtual]
 

Implementa la captura de eventos de mouse sobre las 7 zonas sensibles / interactivas de la técnica de interacción 3D para translaciones AQUYNZA, en un estilo 3DSMax.

El método implementa el siguiente macroalgoritmo:

  • Genera un rayo proyector que parte desde el centro de proyección de la última cámara seleccionada y pasa por la superficie de proyección, en una posición correspondiente al punto cuyas coordenadas equivalen a la coordenada del evento de mouse.
  • Intersecta el rayo con cada una de las 7 zonas sensibles, para determinar así si alguna de ellas está siendo seleccionada por el usuario.
  • Dependiendo de la zona seleccionada, se toman acciones pertinentes a la técnica de interacción 3D del gizmo.

Implements GIZMO_3D_IMPLEMENTADOR.

Definición en la línea 117 del archivo control_3d_vector.C.

References CONTROL_3D_VECTOR::_boton1_mouse_abajo, CONTROL_3D_VECTOR::_Eje_gravedad, GIZMO_3D_IMPLEMENTADOR::_Padre, CONTROL_3D_VECTOR::_Ultima_camara, CONTROL_3D_VECTOR::_valor, _zona_seleccionada_temporal, RAYO::direccion, ETYPE_BUTTON_DOWN, ETYPE_BUTTON_UP, CAMARA::generar_rayo(), FLECHA::interseccion(), MATRIZ_4x4::inversa(), EVENTO_GUI::mouse_button_mask, EVENTO_GUI::mouse_delta_x, EVENTO_GUI::mouse_delta_y, EVENTO_GUI::mouse_x, EVENTO_GUI::mouse_y, RAYO::origen, CAMARA::preprocesar_vista(), MATRIZ_4x4::rotacion_angulos_euler(), CONTROL_3D_VECTOR::set_valor(), EVENTO_GUI::tipo_de_evento, VECTOR::x, VECTOR::y, y VECTOR::z.

Here is the call graph for this function:


Documentación de los datos miembro

int GIZMO_3D_TRANSLACION_3DSMAX::_zona_seleccionada_permanente [private]
 

Es 0 si ninguna zona es seleccionada, o un número de 1 a 7 (inclusive) si se ha seleccionado alguna zona.

La selección es "permanente" si el usuario pasa el mouse sobre la zona y hace click.

Definición en la línea 114 del archivo control_3d.h.

int GIZMO_3D_TRANSLACION_3DSMAX::_zona_seleccionada_temporal [private]
 

Es 0 si ninguna zona es seleccionada, o un número de 1 a 7 (inclusive) si se ha seleccionado alguna zona.

La selección es "temporal" si el usuario pasa el mouse sobre la zona, pero aún no hace click.

Definición en la línea 108 del archivo control_3d.h.

Referenciado por GIZMO_3D_TRANSLACION_3DSMAX(), pintar_gl(), y procesar_mouse().


La documentación para esta clase fué generada a partir de los siguientes archivos:
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.