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 ESPACIO_ABIERTO

#include <e_abierto.h>

Diagrama de herencias de ESPACIO_ABIERTO

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

Collaboration graph
[leyenda]
Lista de todos los miembros.

Métodos públicos

 ESPACIO_ABIERTO ()
 ~ESPACIO_ABIERTO ()
void pintar_gl (CALIDAD_VISUAL *Calidad, CAMARA *Camara)
 PRE: GL esta en GL_MODELVIEW.

virtual double interseccion (RAYO *Rayo, VECTOR *Punto, VECTOR *Normal)
 Dado un Rayo, calcula el punto y la normal de la interseccion de dicho rayo con la geometria de dicha cosa.

BOOLEAN leer_espacio (TOKENIZADOR *Sabiondo, LISTA< GLOBAL_DEM * > *Lst)
void anexar_objetos_rayables (ARREGLO< OBJETO_RAYABLE * > &arr_objetos)
double altura_espacio (VECTOR p)

Métodos privados

void init (void)
 A partir de unos datos de altimetria y una delimitacion geografica, este metodo genera una malla de parches.


Atributos privados

GLOBAL_DEMDem
long int target_xpos
long int target_ypos
long int target_xtam
long int target_ytam
double _escala
double _exageracion
PALETAPaleta
BOOLEAN preprocesada
ARREGLO< PARCHE_TERRENO * > arr_parches

Documentación del constructor y destructor

ESPACIO_ABIERTO::ESPACIO_ABIERTO  ) 
 

Definición en la línea 62 del archivo e_abierto.C.

References _escala, _exageracion, COSA::_tipo_de_cosa, CC_ESPACIO_ABIERTO, Dem, Paleta, preprocesada, target_xpos, target_xtam, target_ypos, y target_ytam.

ESPACIO_ABIERTO::~ESPACIO_ABIERTO  ) 
 

Definición en la línea 76 del archivo e_abierto.C.

References arr_parches, ARREGLO< PARCHE_TERRENO * >::elim(), ESPACIO::Medio, Paleta, y ARREGLO< PARCHE_TERRENO * >::tam().

Here is the call graph for this function:


Documentación de las funciones miembro

double ESPACIO_ABIERTO::altura_espacio VECTOR  p  ) 
 

Definición en la línea 301 del archivo e_abierto.C.

References arr_parches, RAYO::direccion, interseccion(), RAYO::origen, ARREGLO< PARCHE_TERRENO * >::tam(), VECTOR::x, VECTOR::y, y VECTOR::z.

Here is the call graph for this function:

void ESPACIO_ABIERTO::anexar_objetos_rayables ARREGLO< OBJETO_RAYABLE * > &  arr_objetos  )  [virtual]
 

Reimplementado de ESPACIO.

Definición en la línea 330 del archivo e_abierto.C.

References _escala, MATERIAL::ambiente(), OBJETO_RAYABLE::ambiente, ARREGLO< T >::anx(), arr_parches, COSA::color(), OBJETO_RAYABLE::difusa, MATERIAL::especular(), OBJETO_RAYABLE::especular, OBJETO_RAYABLE::Geometria, MATRIZ_4x4::importar_quaternion(), MATRIZ_4x4::inversa(), COSA::material(), COSA_RIGIDA::orientacion_absoluta(), MATERIAL::phong_coef(), OBJETO_RAYABLE::phong_coef, MATERIAL::phong_exp(), OBJETO_RAYABLE::phong_exp, OBJETO_RAYABLE::posicion, COSA_RIGIDA::posicion_absoluta(), OBJETO_RAYABLE::R, OBJETO_RAYABLE::R_i, ARREGLO< PARCHE_TERRENO * >::tam(), target_xtam, target_ytam, VECTOR::x, y VECTOR::y.

Here is the call graph for this function:

void ESPACIO_ABIERTO::init void   )  [private]
 

A partir de unos datos de altimetria y una delimitacion geografica, este metodo genera una malla de parches.

Cada parche es una grilla de elevacion (una geometria),

Definición en la línea 207 del archivo e_abierto.C.

References _escala, _exageracion, ARREGLO< PARCHE_TERRENO * >::anx(), arr_parches, PARCHE_TERRENO::delta_x, PARCHE_TERRENO::delta_y, Dem, PARCHE_TERRENO::Geometria, Paleta, preprocesada, TERRENO::set_paleta(), target_xpos, target_xtam, target_ypos, y target_ytam.

Referenciado por leer_espacio(), y pintar_gl().

Here is the call graph for this function:

double ESPACIO_ABIERTO::interseccion RAYO Rayo,
VECTOR Punto,
VECTOR Normal
[virtual]
 

Dado un Rayo, calcula el punto y la normal de la interseccion de dicho rayo con la geometria de dicha cosa.

Se retorna la distancia desde el origen del rayo hasta el punto de interseccion. Si la distancia es menor a 0 (cero), no hay en realidad interseccion.

OJO: Que tan ineficiente es esto? Tips...

  • Deberia precalcularse en la constructora y en actualizar() a R y su inversa, al igual que p.
  • `n` debe dejar de usarse!
  • En vez de usar matrices se deberian usar quaternions

Reimplementado de ESPACIO.

Definición en la línea 362 del archivo e_abierto.C.

References _escala, arr_parches, RAYO::direccion, MATRIZ_4x4::importar_quaternion(), MATRIZ_4x4::inversa(), VECTOR::normalizar(), COSA_RIGIDA::orientacion_absoluta(), RAYO::origen, COSA_RIGIDA::posicion_absoluta(), ARREGLO< PARCHE_TERRENO * >::tam(), target_xtam, target_ytam, VECTOR::x, y VECTOR::y.

Referenciado por altura_espacio().

Here is the call graph for this function:

BOOLEAN ESPACIO_ABIERTO::leer_espacio TOKENIZADOR Sabiondo,
LISTA< GLOBAL_DEM * > *  Lst
 

Definición en la línea 90 del archivo e_abierto.C.

References COSA::_color, _escala, _exageracion, BOOLEAN, Dem, des_comille(), MATERIAL::difusa(), EXPRESION_REGULAR::evaluar(), init(), EXPRESION_REGULAR::init(), MEDIO::leer(), PALETA::leer(), COSA::leer_basico(), COSA_RIGIDA::leer_rigida(), COSA::Material, ESPACIO::Medio, ENTIDAD::nombre(), Paleta, COSA_RIGIDA::resolver_tensor_de_inercia(), ENTIDAD::set_nombre(), TOKENIZADOR::siguiente_token(), LISTA< T >::tam(), target_xpos, target_xtam, target_ypos, target_ytam, TK_ABRIR, TK_CADENA, TK_CERRAR, TK_DESCONOCIDO, TK_IDENTIFICADOR, y TK_NUMERO.

Here is the call graph for this function:

void ESPACIO_ABIERTO::pintar_gl CALIDAD_VISUAL Calidad,
CAMARA Camara
[virtual]
 

PRE: GL esta en GL_MODELVIEW.

Implements ESPACIO.

Definición en la línea 249 del archivo e_abierto.C.

References _escala, MEDIO::activar_gl(), arr_parches, MATRIZ_4x4::cargar_gl(), MATRIZ_4x4::importar_quaternion(), init(), ESPACIO::Medio, GEOMETRIA::minmax(), CAMARA::minmax_visible(), COSA_RIGIDA::orientacion_absoluta(), GEOMETRIA::pintar_gl(), COSA_RIGIDA::posicion_absoluta(), MEDIO::post_pintar_gl(), preprocesada, ARREGLO< PARCHE_TERRENO * >::tam(), target_xtam, target_ytam, VECTOR::x, VECTOR::y, y VECTOR::z.

Here is the call graph for this function:


Documentación de los datos miembro

double ESPACIO_ABIERTO::_escala [private]
 

Definición en la línea 57 del archivo e_abierto.h.

Referenciado por anexar_objetos_rayables(), ESPACIO_ABIERTO(), init(), interseccion(), leer_espacio(), y pintar_gl().

double ESPACIO_ABIERTO::_exageracion [private]
 

Definición en la línea 58 del archivo e_abierto.h.

Referenciado por ESPACIO_ABIERTO(), init(), y leer_espacio().

ARREGLO<PARCHE_TERRENO *> ESPACIO_ABIERTO::arr_parches [private]
 

Definición en la línea 63 del archivo e_abierto.h.

Referenciado por altura_espacio(), anexar_objetos_rayables(), init(), interseccion(), pintar_gl(), y ~ESPACIO_ABIERTO().

GLOBAL_DEM* ESPACIO_ABIERTO::Dem [private]
 

Definición en la línea 52 del archivo e_abierto.h.

Referenciado por ESPACIO_ABIERTO(), init(), y leer_espacio().

PALETA* ESPACIO_ABIERTO::Paleta [private]
 

Definición en la línea 59 del archivo e_abierto.h.

Referenciado por ESPACIO_ABIERTO(), init(), leer_espacio(), y ~ESPACIO_ABIERTO().

BOOLEAN ESPACIO_ABIERTO::preprocesada [private]
 

Definición en la línea 62 del archivo e_abierto.h.

Referenciado por ESPACIO_ABIERTO(), init(), y pintar_gl().

long int ESPACIO_ABIERTO::target_xpos [private]
 

Definición en la línea 53 del archivo e_abierto.h.

Referenciado por ESPACIO_ABIERTO(), init(), y leer_espacio().

long int ESPACIO_ABIERTO::target_xtam [private]
 

Definición en la línea 55 del archivo e_abierto.h.

Referenciado por anexar_objetos_rayables(), ESPACIO_ABIERTO(), init(), interseccion(), leer_espacio(), y pintar_gl().

long int ESPACIO_ABIERTO::target_ypos [private]
 

Definición en la línea 54 del archivo e_abierto.h.

Referenciado por ESPACIO_ABIERTO(), init(), y leer_espacio().

long int ESPACIO_ABIERTO::target_ytam [private]
 

Definición en la línea 56 del archivo e_abierto.h.

Referenciado por anexar_objetos_rayables(), ESPACIO_ABIERTO(), init(), interseccion(), leer_espacio(), y pintar_gl().


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.