#include <terreno.h>
Diagrama de herencias de TERRENO
Métodos públicos | |
TERRENO (GLOBAL_DEM *Fuente, long int origen_x, long int origen_y, long int xtam, long int ytam, double escala, double exageracion) | |
OJO: Esos "1000" que hay por ahi deberian ser una constante ANCHO_CELDA_TERRENO o algo asi. | |
virtual | ~TERRENO () |
double | interseccion (RAYO *Rayo, VECTOR &punto, VECTOR &normal) |
Este metodo realiza su tarea en dos etapas: - Primero, determina las celdas por las cuales el rayo puede pasar (busqueda). | |
void | anexar_textura (IMAGEN *img) |
int | clasificar_punto (VECTOR p) |
Dado un punto, se retorna: -1: si el punto esta fuera de esta geometria 0: si el punto esta en la superficie (frontera) de la geometria 1: si el punto esta dentro de la geometria. | |
virtual GEOMETRIA * | crear_copia (void) |
OJO: Esto no funciona. | |
void | minmax (VECTOR *min, VECTOR *max) |
void | pintar_gl (CALIDAD_VISUAL *Calidad, MATERIAL *Material, CAMARA *Camara) |
void | pintar_povray (FILE *fd) |
void | pintar_aqz (FILE *fd) |
void | set_paleta (PALETA *P) |
Este metodo reprograma la asociacion de colores para la paleta interna. | |
BOOLEAN | seleccionar (RAYO *Rayito, int *i, int *j) |
double | index2coord_x (int i) |
Esta es la funcion inversa de `coord2index_x`. | |
double | index2coord_y (int j) |
Esta es la funcion inversa de `coord2index_x`. | |
void | elim (void) |
Métodos privados | |
void | pintar_tiras_gl (void) |
OJO: El metodo de arreglos GL es mas rapido pero menos portable. | |
void | pintar_tirasv_gl (void) |
void | calcular_color (float z, float *r, float *g, float *b) |
VECTOR | calcule_subnormal (int x1, int y1, int x2, int y2, int x3, int y3) |
Calcula la normal de superficie para el triangulo definido por los vertices (x1, y1), (x2, y2), (x3, y3) en el espacio del terreno. | |
VECTOR | calcule_normal (int x, int y) |
Dada la organizacion matricial del terreno, de tamanno [x_tam * y_tam], se calcula la normal para el vertice (i, j) teniendo en cuenta las consideraciones presentadas en la estructura precalculada `normal_pattern`. | |
double | interseccion_celda (RAYO *Rayo, VECTOR &punto, VECTOR &normal, int x, int y) |
Este metodo implementa la operacion geometrica de interseccion, pero solo para los dos triangulos que corresponden a la celda (x, y) del terreno. | |
int | coord2index_x (double x_coord) |
Este metodo recibe la componente x de una coordenada global (coordenadas del mundo AQUYNZA), y retorna el indice entero correspondiente a la i-esima columna de la malla 2D que representa el terreno. | |
int | coord2index_y (double y_coord) |
Este metodo recibe la componente y de una coordenada global (coordenadas del mundo AQUYNZA), y retorna el indice entero correspondiente a la i-esima fila de la malla 2D que representa el terreno. | |
Atributos privados | |
PALETA * | Paleta |
IMAGEN * | imagen |
long int | _x_tam |
long int | _y_tam |
long int | vertices_tam |
VERTICE_GL * | vertices_arr |
GLubyte * | colores_arr |
GLuint ** | TIras_arr |
VECTOR | _min |
VECTOR | _max |
double | _escala |
double | _factor_exageracion |
LISTA< int > | arr_debug_x |
LISTA< int > | arr_debug_y |
COLOR | color_debug |
|
OJO: Esos "1000" que hay por ahi deberian ser una constante ANCHO_CELDA_TERRENO o algo asi.
Definición en la línea 145 del archivo terreno.C. References _escala, _factor_exageracion, _max, _min, _x_tam, _y_tam, calcule_normal(), colores_arr, GLOBAL_DEM::exportar_vertices(), GLubyte, GLuint, imagen, VERTICE_GL::nx, VERTICE_GL::ny, VERTICE_GL::nz, set_paleta(), TIras_arr, vertices_arr, vertices_tam, VECTOR::x, VERTICE_GL::x, VECTOR::y, VERTICE_GL::y, VECTOR::z, y VERTICE_GL::z. Referenciado por crear_copia(). |
Here is the call graph for this function:
|
Definición en la línea 294 del archivo terreno.C. References elim(). |
Here is the call graph for this function:
|
Implements GEOMETRIA. Definición en la línea 407 del archivo terreno.C. References imagen. |
|
Definición en la línea 448 del archivo terreno.C. References _escala, _factor_exageracion, COLOR::b, PALETA::escala(), COLOR::g, Paleta, y COLOR::r. Referenciado por pintar_tiras_gl(), y set_paleta(). |
Here is the call graph for this function:
|
Dada la organizacion matricial del terreno, de tamanno [x_tam * y_tam], se calcula la normal para el vertice (i, j) teniendo en cuenta las consideraciones presentadas en la estructura precalculada `normal_pattern`.
Definición en la línea 359 del archivo terreno.C. References _x_tam, _y_tam, calcule_subnormal(), lados_primarios, lados_secundarios, normal_pattern, VECTOR::normalizar(), VECTOR::x, VECTOR::y, y VECTOR::z. Referenciado por TERRENO(). |
Here is the call graph for this function:
|
Calcula la normal de superficie para el triangulo definido por los vertices (x1, y1), (x2, y2), (x3, y3) en el espacio del terreno.
Definición en la línea 324 del archivo terreno.C. References VECTOR::normalizar(), VECTOR::producto_cruz(), VECTOR::x, VECTOR::y, y VECTOR::z. Referenciado por calcule_normal(). |
Here is the call graph for this function:
|
Dado un punto, se retorna: -1: si el punto esta fuera de esta geometria 0: si el punto esta en la superficie (frontera) de la geometria 1: si el punto esta dentro de la geometria.
Implements GEOMETRIA. |
|
Este metodo recibe la componente x de una coordenada global (coordenadas del mundo AQUYNZA), y retorna el indice entero correspondiente a la i-esima columna de la malla 2D que representa el terreno.
Definición en la línea 117 del archivo terreno.h. References _escala. Referenciado por interseccion(), y seleccionar(). |
|
Este metodo recibe la componente y de una coordenada global (coordenadas del mundo AQUYNZA), y retorna el indice entero correspondiente a la i-esima fila de la malla 2D que representa el terreno.
Definición en la línea 132 del archivo terreno.h. Referenciado por interseccion(), y seleccionar(). |
|
OJO: Esto no funciona.
Reimplementado de GEOMETRIA. Definición en la línea 723 del archivo terreno.C. References IMAGEN::copie(), imagen, y TERRENO(). |
Here is the call graph for this function:
|
Definición en la línea 275 del archivo terreno.C. References _y_tam, colores_arr, imagen, TIras_arr, y vertices_arr. Referenciado por ~TERRENO(). |
|
Esta es la funcion inversa de `coord2index_x`.
Definición en la línea 148 del archivo terreno.h. References vertices_arr, y VERTICE_GL::x. Referenciado por interseccion(), y interseccion_celda(). |
|
Esta es la funcion inversa de `coord2index_x`.
Definición en la línea 162 del archivo terreno.h. References _x_tam, y vertices_arr. Referenciado por interseccion(), y interseccion_celda(). |
|
Este metodo realiza su tarea en dos etapas: - Primero, determina las celdas por las cuales el rayo puede pasar (busqueda). Esta etapa puede ser de tres tipos de situacion: si el rayo es paralelo a la direccion z, si la proyeccion del rayo en el plano del terreno posee una pendiente abs(m) <= 1 o si la pendiente de la proyeccion del rayo tiene una pendiente abs(m) > 1.
Reimplementado de GEOMETRIA. Definición en la línea 284 del archivo terreno.h. References _x_tam, _y_tam, LISTA< int >::anx(), arr_debug_x, arr_debug_y, COLOR::b, color_debug, coord2index_x(), coord2index_y(), RAYO::direccion, LISTA< int >::elim(), COLOR::g, index2coord_x(), index2coord_y(), interseccion_celda(), VECTOR::norma(), VECTOR::normalizar(), RAYO::origen, COLOR::r, LISTA< int >::tam(), VECTOR::x, VECTOR::y, y VECTOR::z. Referenciado por seleccionar(). |
Here is the call graph for this function:
|
Este metodo implementa la operacion geometrica de interseccion, pero solo para los dos triangulos que corresponden a la celda (x, y) del terreno. Notese que para los siguientes puntos, se tienen los dos triangulos definidos asi: A = (x, y) B--D B = (x, y+1) | /| C = (x+1, y) |/ | D = (x+1, y+1) A--C T1 = DBA, T2 = ACD Definición en la línea 176 del archivo terreno.h. References _x_tam, RAYO::direccion, index2coord_x(), index2coord_y(), VECTOR::normalizar(), RAYO::origen, VECTOR::producto_cruz(), VECTOR::producto_punto(), vertices_arr, VECTOR::x, VECTOR::y, y VECTOR::z. Referenciado por interseccion(). |
Here is the call graph for this function:
|
Reimplementado de GEOMETRIA. |
|
Implements GEOMETRIA. |
|
Implements GEOMETRIA. Definición en la línea 638 del archivo terreno.C. References CALIDAD_VISUAL::activar_bordes_gl(), CALIDAD_VISUAL::activar_caras_gl(), IMAGEN::activar_gl(), MATERIAL::activar_gl(), CALIDAD_VISUAL::activar_textura_gl(), CALIDAD_VISUAL::con_bordes, CALIDAD_VISUAL::con_cajas, CALIDAD_VISUAL::con_caras, CALIDAD_VISUAL::con_caustics, CALIDAD_VISUAL::con_textura, imagen, pintar_tiras_gl(), vertices_arr, y vertices_tam. |
Here is the call graph for this function:
|
Implements GEOMETRIA. |
|
OJO: El metodo de arreglos GL es mas rapido pero menos portable. Por otro lado debe tenerse muy en cuenta como es que se usa el arreglo "colores_arr", ya que puede contener atributos de material, o resultados precalculados con el modelo de iluminacion. Definición en la línea 523 del archivo terreno.C. References _x_tam, _y_tam, arr_debug_x, arr_debug_y, COLOR::b, calcular_color(), color_debug, colores_arr, COLOR::g, pintar_cubo(), COLOR::r, LISTA< int >::tam(), TIras_arr, vertices_arr, VERTICE_GL::x, VERTICE_GL::y, y VERTICE_GL::z. Referenciado por pintar_gl(). |
Here is the call graph for this function:
|
|
|
Definición en la línea 770 del archivo terreno.C. References _escala, coord2index_x(), coord2index_y(), interseccion(), VECTOR::x, y VECTOR::y. |
Here is the call graph for this function:
|
Este metodo reprograma la asociacion de colores para la paleta interna.
Definición en la línea 300 del archivo terreno.C. References _x_tam, _y_tam, calcular_color(), colores_arr, GLubyte, Paleta, y vertices_arr. Referenciado por ESPACIO_ABIERTO::init(), y TERRENO(). |
Here is the call graph for this function:
|
Definición en la línea 56 del archivo terreno.h. Referenciado por calcular_color(), coord2index_x(), coord2index_y(), seleccionar(), y TERRENO(). |
|
Definición en la línea 57 del archivo terreno.h. Referenciado por calcular_color(), y TERRENO(). |
|
|
|
|
|
Definición en la línea 47 del archivo terreno.h. Referenciado por calcule_normal(), index2coord_y(), interseccion(), interseccion_celda(), pintar_tiras_gl(), set_paleta(), y TERRENO(). |
|
Definición en la línea 48 del archivo terreno.h. Referenciado por calcule_normal(), coord2index_y(), elim(), interseccion(), pintar_tiras_gl(), set_paleta(), y TERRENO(). |
|
Definición en la línea 60 del archivo terreno.h. Referenciado por interseccion(), y pintar_tiras_gl(). |
|
Definición en la línea 61 del archivo terreno.h. Referenciado por interseccion(), y pintar_tiras_gl(). |
|
Definición en la línea 63 del archivo terreno.h. Referenciado por interseccion(), y pintar_tiras_gl(). |
|
Definición en la línea 51 del archivo terreno.h. Referenciado por elim(), pintar_tiras_gl(), set_paleta(), y TERRENO(). |
|
Definición en la línea 46 del archivo terreno.h. Referenciado por anexar_textura(), crear_copia(), elim(), pintar_gl(), y TERRENO(). |
|
Definición en la línea 45 del archivo terreno.h. Referenciado por calcular_color(), y set_paleta(). |
|
Definición en la línea 52 del archivo terreno.h. Referenciado por elim(), pintar_tiras_gl(), y TERRENO(). |
|
Definición en la línea 50 del archivo terreno.h. Referenciado por elim(), index2coord_x(), index2coord_y(), interseccion_celda(), pintar_gl(), pintar_tiras_gl(), set_paleta(), y TERRENO(). |
|
Definición en la línea 49 del archivo terreno.h. Referenciado por pintar_gl(), y TERRENO(). |