#include <bsp_2d.h>
Diagrama de herencias de BSP_2D
Métodos públicos | |
BSP_2D () | |
virtual | ~BSP_2D () |
BOOLEAN | importe_wadlevel (WAD_DATABASE *w, int id_nivel) |
Importa su estructura completa a partir de un nivel en formato WAD de IdSoftware. | |
void | anexar_textura (IMAGEN *img) |
int | clasificar_punto (VECTOR p) |
GEOMETRIA * | crear_copia (void) |
En este metodo se define el comportamiento por defecto de la creacion de copias de geometrias. | |
void | pintar_gl (CALIDAD_VISUAL *Calidad, MATERIAL *Material, CAMARA *Camara) |
Este metodo establece las configuraciones OpenGL necesarias para cumplir con los requerimientos de calidad solicitados. | |
void | pintar_bsp (CALIDAD_VISUAL *Calidad, MATERIAL *Material, CAMARA *Camara) |
Este metodo establece las configuraciones OpenGL necesarias para cumplir con los requerimientos de calidad solicitados. | |
void | pintar_povray (FILE *fd) |
void | pintar_aqz (FILE *fd) |
double | altura (double x, double y) |
Recibe una coordenada EN METROS, y retorna la altura del piso (tambien en metros) en esa parte dentro del mundo. | |
Métodos privados | |
void | pintar_gl_3D (CALIDAD_VISUAL *Calidad) |
Este es un servicio privado para los algoritmos de visualizacion en modo 3D. | |
void | pintar_gl_3D_wireframe (CALIDAD_VISUAL *Calidad) |
Este es un servicio privado para los algoritmos de visualizacion en modo 3D. | |
void | activar_calidad (CALIDAD_VISUAL *Calidad, MATERIAL *Material) |
Este es un servicio privado para los algoritmos de visualizacion en modo 3D. | |
void | mover (_BSP2D_VERTICEi delta) |
int | deme_flat (char *nombre) |
Este es un servicio para las sub-estructuras de la representacion BSP (en particular para la clase _BSP2D_SECTOR), y es considerado un servicio de persistencia en cuanto hace parte de las rutinas de importacion del formato WAD. | |
int | deme_textura (char *nombre) |
Este es un servicio para las sub-estructuras de la representacion BSP (en particular para la clase _BSP2D_PARED), y es considerado un servicio de persistencia en cuanto hace parte de las rutinas de importacion del formato WAD. | |
Atributos privados | |
WAD_DATABASE * | datos_wad |
PALETA | paleta_para_texturas |
LISTA< IMAGEN * > | flats |
LISTA< IMAGEN * > | sprites |
LISTA< char * > | nombres_flats |
LISTA< char * > | nombres_sprites |
_BSP2D_VERTICEi | min |
_BSP2D_VERTICEi | max |
long int | num_vertices |
_BSP2D_VERTICEi * | Vertices |
long int | num_arcos |
_BSP2D_ARCO * | Arcos |
long int | num_paredes |
_BSP2D_PARED * | Paredes |
long int | num_segmentos |
_BSP2D_SEGMENTOi * | Segmentos |
long int | num_sectores |
_BSP2D_SECTOR * | Sectores |
long int | num_hojas |
_BSP2D_HOJA * | Hojas |
long int | num_nodos |
_BSP2D_NODO * | Nodos |
_BSP2D_NODO * | Raiz |
Amigas | |
class | _BSP2D_ARCO |
class | _BSP2D_SECTOR |
class | _BSP2D_SEGMENTOi |
class | _BSP2D_HOJA |
class | _BSP2D_NODO |
class | _BSP2D_PARED |
Esta orientada a representar espacios arquitectonicos, y es basicamente compatible con los niveles WAD de juego de IdSoftware (i.e. Doom, Doom II, Heretic, etc.).
El modelo consiste en un arbol de particion binaria (Binary Search Particion Tree), o "BSP-Tree" (ver "Computer Graphics, Principles and Practice" de Foley o "An introduction to solid modeling" de Martti Mantyla). Las hojas del arbol son "sectores" (volumenes que son prismas rectos de base poligonal convexa), aqui llamados "_BSP2D_HOJA". Los nodos intermedios del arbol ordenan los sectores, de tal manera que una coordenada dada pueda localizarse rapidamente mediante el uso de mini-max's. Para mayor informacion, remitirse a la documentacion "The Unofficial DOOM specs" de Matthew S Fell (msfell@aol.com).
Definición en la línea 361 del archivo bsp_2d.h.
|
Definición en la línea 1451 del archivo bsp_2d.C. References Arcos, datos_wad, Hojas, max, min, Nodos, num_arcos, num_hojas, num_nodos, num_paredes, num_sectores, num_segmentos, num_vertices, Paredes, Raiz, Sectores, Segmentos, Vertices, _BSP2D_VERTICEi::x, y _BSP2D_VERTICEi::y. |
|
|
|
Este es un servicio privado para los algoritmos de visualizacion en modo 3D. Configura OpenGL y algunas variables especiales para cumplir con los requerimientos de calidad solicitados cuando se usan las operaciones de pintar en modo 3D. Definición en la línea 1813 del archivo bsp_2d.C. References MATERIAL::activar_gl(), PALETA::activar_gl(), CALIDAD_VISUAL::calidad_caras, CALIDAD_VISUAL::con_textura, CVC_CONSTANTE, CVC_SHADE, paleta_para_texturas, PRIMITIVA_cuadros, y PRIMITIVA_triangulos. Referenciado por pintar_bsp(), y pintar_gl(). |
Here is the call graph for this function:
|
Recibe una coordenada EN METROS, y retorna la altura del piso (tambien en metros) en esa parte dentro del mundo.
Definición en la línea 1496 del archivo bsp_2d.C. References _BSP2D_SECTOR::altura(), altura(), num_sectores, y Sectores. Referenciado por altura(). |
Here is the call graph for this function:
|
Implements GEOMETRIA_3D. |
|
Implements GEOMETRIA_3D. |
|
En este metodo se define el comportamiento por defecto de la creacion de copias de geometrias. Notese que como el metodo es virtual, puede ser redefinido por las clases que hereden de GEOMETRIA. Implements GEOMETRIA_3D. |
|
Este es un servicio para las sub-estructuras de la representacion BSP (en particular para la clase _BSP2D_SECTOR), y es considerado un servicio de persistencia en cuanto hace parte de las rutinas de importacion del formato WAD. Dada una cadena de caracteres con el nombre de una textura flat (del directorio WAD), este metodo retorna el sub-indice de la lista flats para esa textura. Este metodo se encarga de crear la imagen y anexarla a la lista flats si la imagen no existe. Definición en la línea 1676 del archivo bsp_2d.C. References LISTA< IMAGEN * >::anx(), LISTA< char * >::anx(), datos_wad, WAD_DATABASE::fd, flats, IMAGEN_PAL::importar_wadflat(), WAD_DATABASE::localice_flat_por_nombre(), nombres_flats, y LISTA< char * >::tam(). Referenciado por _BSP2D_SECTOR::importe_wad(). |
Here is the call graph for this function:
|
Este es un servicio para las sub-estructuras de la representacion BSP (en particular para la clase _BSP2D_PARED), y es considerado un servicio de persistencia en cuanto hace parte de las rutinas de importacion del formato WAD. Dada una cadena de caracteres con el nombre de una textura sprite (del directorio WAD), este metodo retorna el sub-indice de la lista flats para esa textura. Este metodo se encarga de crear la imagen y anexarla a la lista sprites si la imagen no existe. Definición en la línea 1723 del archivo bsp_2d.C. References LISTA< IMAGEN * >::anx(), LISTA< char * >::anx(), datos_wad, WAD_DATABASE::fd, IMAGEN_PAL::importar_wadsprite(), IMAGEN_PAL::init(), WAD_DATABASE::localice_imagen_por_nombre(), WAD_DATABASE::localice_textura_por_nombre(), nombres_sprites, IMAGEN_PAL::pegar_subimagen(), sprites, WAD_DATABASE::tabla_pname, y LISTA< char * >::tam(). Referenciado por _BSP2D_PARED::importe_wad(). |
Here is the call graph for this function:
|
Here is the call graph for this function:
|
Definición en la línea 1477 del archivo bsp_2d.C. References max, min, num_vertices, Vertices, _BSP2D_VERTICEi::x, y _BSP2D_VERTICEi::y. Referenciado por importe_wadlevel(). |
|
Implements GEOMETRIA_3D. |
|
Este metodo establece las configuraciones OpenGL necesarias para cumplir con los requerimientos de calidad solicitados. Posteriormente invoca a pintar_gl_3D, que hace todo el trabajo de construccion de primitivas. IMPORTANTE: Notese que esta es una de dos versiones que hacen lo mismo. La diferencia es que esta version usa la estructura BSP para pintar, teniendo en cuenta la posicion de la camara, solo los poligonos que sean necesarios (es la version "rapida"). Por otro lado, la otra version pinta indiscriminadamente todos los poligonos de la representacion BREP, sin hacer uso de la estructura BSP. Definición en la línea 1934 del archivo bsp_2d.C. References activar_calidad(), BOOLEAN, CALIDAD_VISUAL::con_bordes, CALIDAD_VISUAL::con_caras, _BSP2D_SECTOR::con_paredes, MATRIZ_4x4::exportar_angulos_euler(), MATRIZ_4x4::importar_quaternion(), _BSP2D_SECTOR::marcado, NUM_poligonos, num_sectores, CAMARA::orientacion(), _BSP2D_NODO::pintar_gl_2D(), _BSP2D_SECTOR::pintar_gl_3D(), _BSP2D_NODO::pintar_gl_3D(), pintar_gl_3D_wireframe(), CAMARA::posicion(), Raiz, MATRIZ_4x4::rotacion_eje(), y Sectores. |
Here is the call graph for this function:
|
Este metodo establece las configuraciones OpenGL necesarias para cumplir con los requerimientos de calidad solicitados. Posteriormente invoca a pintar_gl_3D, que hace todo el trabajo de construccion de primitivas. IMPORTANTE: Notese que esta es una de dos versiones que hacen lo mismo. La diferencia es que esta version pinta indiscriminadamente todos los poligonos de la representacion BREP, sin hacer uso de la estructura BSP (es la version "lenta"). Por otro lado, la otra version usa la estructura BSP para pintar, teniendo en cuenta la posicion de la camara, solo los poligonos que sean necesarios. Implements GEOMETRIA_3D. Definición en la línea 1902 del archivo bsp_2d.C. References activar_calidad(), CALIDAD_VISUAL::con_bordes, CALIDAD_VISUAL::con_caras, _BSP2D_SECTOR::con_paredes, _BSP2D_SECTOR::marcado, num_sectores, pintar_gl_3D(), pintar_gl_3D_wireframe(), y Sectores. |
Here is the call graph for this function:
|
Este es un servicio privado para los algoritmos de visualizacion en modo 3D. Genera primitivas OpenGL para visualizar el modelo geometrico BREP mediante poligonos. Esta operacion es util tanto en el modo de uso activo BSP como en el modo de generacion indiscriminada de todos los poligonos en el modelo BREP. Cumple con dos grandes funciones:
Definición en la línea 1873 del archivo bsp_2d.C. References num_sectores, _BSP2D_SECTOR::pintar_gl_3D(), y Sectores. Referenciado por pintar_gl(), y pintar_gl_3D_wireframe(). |
Here is the call graph for this function:
|
Este es un servicio privado para los algoritmos de visualizacion en modo 3D. Genera primitivas OpenGL para visualizar el modelo geometrico BREP en alambre (wireframe). OJO: NO usa la estructura BSP. Debe estudiarse la posibilidad de activar el uso del arbol BSP en esta operacion. Definición en la línea 1849 del archivo bsp_2d.C. References _BSP2D_SECTOR::con_paredes, _BSP2D_SECTOR::marcado, num_sectores, pintar_gl_3D(), PRIMITIVA_cuadros, PRIMITIVA_triangulos, y Sectores. Referenciado por pintar_bsp(), y pintar_gl(). |
Here is the call graph for this function:
|
Implements GEOMETRIA_3D. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Definición en la línea 402 del archivo bsp_2d.h. Referenciado por BSP_2D(), _BSP2D_SEGMENTOi::importe_wad(), importe_wadlevel(), y _BSP2D_SEGMENTOi::pintar_gl_3D(). |
|
Definición en la línea 386 del archivo bsp_2d.h. Referenciado por BSP_2D(), deme_flat(), deme_textura(), y importe_wadlevel(). |
|
Definición en la línea 390 del archivo bsp_2d.h. Referenciado por deme_flat(), y _BSP2D_SECTOR::pintar_gl_3D(). |
|
Definición en la línea 415 del archivo bsp_2d.h. Referenciado por BSP_2D(), _BSP2D_NODO::importe_wad(), y importe_wadlevel(). |
|
Definición en la línea 395 del archivo bsp_2d.h. Referenciado por BSP_2D(), importe_wadlevel(), y mover(). |
|
Definición en la línea 394 del archivo bsp_2d.h. Referenciado por BSP_2D(), importe_wadlevel(), y mover(). |
|
Definición en la línea 417 del archivo bsp_2d.h. Referenciado por BSP_2D(), _BSP2D_NODO::importe_wad(), y importe_wadlevel(). |
|
Definición en la línea 392 del archivo bsp_2d.h. Referenciado por deme_flat(). |
|
Definición en la línea 393 del archivo bsp_2d.h. Referenciado por deme_textura(). |
|
Definición en la línea 401 del archivo bsp_2d.h. Referenciado por BSP_2D(), y importe_wadlevel(). |
|
Definición en la línea 414 del archivo bsp_2d.h. Referenciado por BSP_2D(), y importe_wadlevel(). |
|
Definición en la línea 416 del archivo bsp_2d.h. Referenciado por BSP_2D(), y importe_wadlevel(). |
|
Definición en la línea 404 del archivo bsp_2d.h. Referenciado por BSP_2D(), _BSP2D_ARCO::importe_wad(), importe_wadlevel(), _BSP2D_SECTOR::pintar_gl_3D(), y _BSP2D_SECTOR::triangularize(). |
|
Definición en la línea 410 del archivo bsp_2d.h. Referenciado por altura(), BSP_2D(), importe_wadlevel(), pintar_bsp(), pintar_gl(), pintar_gl_3D(), y pintar_gl_3D_wireframe(). |
|
Definición en la línea 407 del archivo bsp_2d.h. Referenciado por BSP_2D(), importe_wadlevel(), _BSP2D_HOJA::pintar_gl_2D(), y _BSP2D_HOJA::pintar_gl_3D(). |
|
Definición en la línea 398 del archivo bsp_2d.h. Referenciado por BSP_2D(), importe_wadlevel(), mover(), y _BSP2D_SEGMENTOi::pintar_gl_2D(). |
|
Definición en la línea 389 del archivo bsp_2d.h. Referenciado por activar_calidad(), y importe_wadlevel(). |
|
Definición en la línea 405 del archivo bsp_2d.h. Referenciado por BSP_2D(), _BSP2D_ARCO::importe_wad(), importe_wadlevel(), _BSP2D_SECTOR::pintar_gl_3D(), y _BSP2D_SECTOR::triangularize(). |
|
Definición en la línea 418 del archivo bsp_2d.h. Referenciado por BSP_2D(), importe_wadlevel(), y pintar_bsp(). |
|
Definición en la línea 411 del archivo bsp_2d.h. Referenciado por altura(), _BSP2D_HOJA::altura_cuadro(), BSP_2D(), _BSP2D_PARED::calcule_normal(), importe_wadlevel(), pintar_bsp(), pintar_gl(), pintar_gl_3D(), _BSP2D_SEGMENTOi::pintar_gl_3D(), y pintar_gl_3D_wireframe(). |
|
Definición en la línea 408 del archivo bsp_2d.h. Referenciado por _BSP2D_HOJA::altura_cuadro(), BSP_2D(), importe_wadlevel(), _BSP2D_HOJA::pintar_gl_2D(), y _BSP2D_HOJA::pintar_gl_3D(). |
|
Definición en la línea 391 del archivo bsp_2d.h. Referenciado por deme_textura(), y _BSP2D_SEGMENTOi::pintar_gl_3D(). |
|
Definición en la línea 399 del archivo bsp_2d.h. Referenciado por _BSP2D_SEGMENTOi::anexe_vertices(), BSP_2D(), _BSP2D_PARED::calcule_normal(), importe_wadlevel(), mover(), _BSP2D_SEGMENTOi::pintar_gl_2D(), _BSP2D_SEGMENTOi::pintar_gl_3D(), _BSP2D_ARCO::pintar_gl_3D(), y _BSP2D_SECTOR::triangularize(). |