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 ENTIDAD

#include <entidad.h>

Diagrama de herencias de ENTIDAD

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

Collaboration graph
[leyenda]
Lista de todos los miembros.

Métodos públicos

 ENTIDAD ()
 La interface ENTIDAD está diseñada para implementar introspección en las clases del modelo básico de AQUYNZA.

char * nombre (void)
 Para hacer posible la introspección todo objeto debe tener un nombre.

void set_nombre (const char *n)
 Para hacer posible la introspección todo objeto debe tener un nombre.

virtual BOOLEAN consultar_variable (const char *nombre_variable, int &tipo, void **ref)
 Éste método, junto con `actualizar_variable` es el núcleo del esquema de introspección AQUYNZA.

virtual BOOLEAN actualizar_variable (const char *nombre_variable, int tipo, void *ref)
 Éste metodo, junto con `consultar_variable` es el núcleo del esquema de introspección AQUYNZA.

void propagar_cambios (void)
 Una `ENTIDAD` es un objeto con introspección, que permite ser cambiado mediante la interface consultar_variable/actualizar_variable.

void registrar_controlador (CONTROLADOR_DE_ENTIDAD *Controlador)
 Toda `ENTIDAD` capaz de introspección puede ser manipulada por un `CONTROLADOR_DE_ENTIDAD`.


Atributos privados

char _nombre [MAX_CAD]
ARREGLO< CONTROLADOR_DE_ENTIDAD * > arr_referencias

Documentación del constructor y destructor

ENTIDAD::ENTIDAD  ) 
 

La interface ENTIDAD está diseñada para implementar introspección en las clases del modelo básico de AQUYNZA.

Herede sus clases de ENTIDAD si desea que sean objetos visibles externamente, por ejemplo, que sean exportables en IDL's CORBA.

Nótese que el esquema de sistemas de control AQUYNZA, y el esquema de computación distribuida AQUYNZA estan basados en el concepto de introspección.

Definición en la línea 31 del archivo entidad.C.

References _nombre.


Documentación de las funciones miembro

BOOLEAN ENTIDAD::actualizar_variable const char *  nombre_variable,
int  tipo,
void *  ref
[virtual]
 

Éste metodo, junto con `consultar_variable` es el núcleo del esquema de introspección AQUYNZA.

La introspección permite consultar y/o actualizar cualquier variable de cualquier tipo mediante una interfaz unificada.

Éste metodo rétorna TRUE si la operación de acutalización en introspección fue válida o FALSE si no (ya sea porque el tipo de datos era incorrecto o el nombre de variable suministrado no existe dentro de la clase). Este método deberá ser sobrecargado por las clases que se deseen entren al esquema de introspección AQUYNZA (las cuales además deben heredar de ésta clase). El comportamiento por defecto es tener la introspección desactivada (siempre retornar FALSE).

Reimplementado en COSA, COSA_RIGIDA, y DISPOSITIVO_DE_PRUEBA.

Definición en la línea 88 del archivo entidad.C.

Referenciado por VARIABLE_DE_ESTADO::actualizar_float(), VARIABLE_DE_ESTADO::actualizar_vector(), CONTROL_GUI_FLOAT::set_valor(), y CONTROL_3D_VECTOR::set_valor().

BOOLEAN ENTIDAD::consultar_variable const char *  nombre_variable,
int &  tipo,
void **  ref
[virtual]
 

Éste método, junto con `actualizar_variable` es el núcleo del esquema de introspección AQUYNZA.

La introspección permite consultar y/o actualizar cualquier variable de cualquier tipo mediante una interfaz unificada.

Éste método retorna TRUE si la operación de consulta en introspección fue válida o FALSE si no (ya sea porque el tipo de datos era incorrecto o el nombre de variable suministrado no existe dentro de la clase). Éste método deberá ser sobrecargado por las clases que se deseen entren al esquema de introspección AQUYNZA (y las cuales heredarán de ésta clase). El comportamiento por defecto es tener la introspección desactivada (siempre retornar FALSE).

Reimplementado en COSA, MASA_PUNTUAL, COSA_RIGIDA, CURVA_PARAMETRICA, CAMARA, DISPOSITIVO_DE_PRUEBA, DISPOSITIVO, DATAGLOVE, JOYSTICK, LEGO9751, TRACKER_VIO, y EXPRESION_REGULAR.

Definición en la línea 67 del archivo entidad.C.

Referenciado por LUZ::activar_gl(), LUZ::activar_povray(), CONTROL_GUI_FLOAT::actualizar(), CONTROL_3D_VECTOR::actualizar(), CAMARA::calcular_matriz_de_proyeccion(), VARIABLE_DE_ESTADO::evaluar_float(), VARIABLE_DE_ESTADO::evaluar_vector(), CAMARA::minmax_visible(), CAMARA::pintar_gl(), y CAMARA::preprocesar_vista().

char * ENTIDAD::nombre void   ) 
 

Para hacer posible la introspección todo objeto debe tener un nombre.

Éste método permite consultar el nombre de un objeto.

Definición en la línea 47 del archivo entidad.C.

References _nombre.

Referenciado por CAMARA::billboard_gl(), VARIABLE_DE_ESTADO::evaluar_float(), VARIABLE_DE_ESTADO::evaluar_vector(), COSA_RIGIDA::grabar(), CAMARA::imprimir(), RESORTE::insertar_extremo(), ARTICULACION::insertar_extremo(), RESORTE::leer(), ARTICULACION::leer(), ESPACIO_ABIERTO::leer_espacio(), COSA::leer_material(), y COSA_RIGIDA::resolver().

void ENTIDAD::propagar_cambios void   ) 
 

Una `ENTIDAD` es un objeto con introspección, que permite ser cambiado mediante la interface consultar_variable/actualizar_variable.

Como una facilidad para modelos MVC (Modelo Vista Controlador), la ENTIDAD puede llevar un recuento de los controladores asociados en `arr_referencias`, y la operación `propagar_cambios` avisa a todos los controladores asociados a la `ENTIDAD` que las variable de estado fueron cambiadas.

Definición en la línea 127 del archivo entidad.C.

References arr_referencias, y ARREGLO< CONTROLADOR_DE_ENTIDAD * >::tam().

Referenciado por VARIABLE_DE_ESTADO::actualizar_float(), VARIABLE_DE_ESTADO::actualizar_vector(), CONTROL_GUI_FLOAT::set_valor(), y CONTROL_3D_VECTOR::set_valor().

Here is the call graph for this function:

void ENTIDAD::registrar_controlador CONTROLADOR_DE_ENTIDAD Controlador  ) 
 

Toda `ENTIDAD` capaz de introspección puede ser manipulada por un `CONTROLADOR_DE_ENTIDAD`.

Éste método añade un `CONTROLADOR_DE_ENTIDAD` al conjunto de controladores de esta `ENTIDAD`, haciendo posible que cualquier cambio de estado dentro del objeto se propague a todos sus controladores, manteniedolos siempre actualizados.

Nótese que todo `CONTROLADOR_DE_ENTIDAD` debe registrarse ante la las `ENTIDAD`es que controle. Observe el comportamiento del método `ENTIDAD::propagar_cambios`.

Definición en la línea 110 del archivo entidad.C.

References ARREGLO< CONTROLADOR_DE_ENTIDAD * >::anx(), y arr_referencias.

Referenciado por CONTROL_3D_VECTOR::crear().

Here is the call graph for this function:

void ENTIDAD::set_nombre const char *  n  ) 
 

Para hacer posible la introspección todo objeto debe tener un nombre.

Este método permite actualizar el nombre de un objeto.

Definición en la línea 57 del archivo entidad.C.

References _nombre.

Referenciado por TELA::leer(), RESORTE::leer(), MASA_PUNTUAL::leer(), LUZ::leer(), CURVA_PARAMETRICA::leer(), COSA_RIGIDA::leer(), CAMARA::leer(), ARTICULACION::leer(), y ESPACIO_ABIERTO::leer_espacio().


Documentación de los datos miembro

char ENTIDAD::_nombre[MAX_CAD] [private]
 

Definición en la línea 33 del archivo entidad.h.

Referenciado por ENTIDAD(), nombre(), y set_nombre().

ARREGLO<CONTROLADOR_DE_ENTIDAD *> ENTIDAD::arr_referencias [private]
 

Definición en la línea 34 del archivo entidad.h.

Referenciado por propagar_cambios(), y registrar_controlador().


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.