#include <bsp_2d.h>
Diagrama de colaboración para _BSP2D_SECTOR:
Métodos públicos | |
_BSP2D_SECTOR () | |
BOOLEAN | altura (double x, double y, double *Altura) |
void | importe_wad (BSP_2D *pp, WAD_LEVEL *Nivel_wad, long int pos) |
void | pintar_gl_3D (CALIDAD_VISUAL *Calidad) |
Una nota respecto a las texturas: Cada pixel representa un area de 2x2 cm (4cm^2). | |
void | triangularize (void) |
Dado que un sector es una cara plana en un modelo de un solido basado por la frontera, este metodo lo parte a punta de triangulos. | |
Atributos privados | |
WORD | id |
WORD | altura_piso |
WORD | altura_techo |
double | min_x |
double | min_y |
double | max_x |
double | max_y |
BSP_2D * | Padre |
char | textura_piso [9] |
char | textura_techo [9] |
int | textura_piso_id |
int | textura_techo_id |
long int | num_triangulos |
double * | Triangulos |
BOOLEAN | marcado |
BOOLEAN | con_paredes |
long int | pos |
Amigas | |
class | _BSP2D_PARED |
class | _BSP2D_HOJA |
class | _BSP2D_SEGMENTOi |
class | BSP_2D |
Como la geometría BREP de este modelo de representación es de 2 dimensiones y media, un sector es la base de un volumen que es un prisma recto, que empieza en z=altura_piso y termina en z=altura_techo.
Las texturas de las paredes del volumen están representadas en la clase _BSP2D_PARED (la cual se accesa por medio de los segmentos y arcos). El _BSP2D_SECTOR posee las texturas del piso y del techo del prisma.
Definición en la línea 198 del archivo bsp_2d.h.
|
Definición en la línea 931 del archivo bsp_2d.C. References con_paredes, y marcado. |
|
Definición en la línea 904 del archivo bsp_2d.C. References altura_piso, max_x, max_y, num_triangulos, VECTOR::producto_cruz(), Triangulos, VECTOR::x, VECTOR::y, y VECTOR::z. Referenciado por BSP_2D::altura(). |
Here is the call graph for this function:
|
Definición en la línea 938 del archivo bsp_2d.C. References altura_piso, altura_techo, BYTE, BSP_2D::deme_flat(), id, WAD_ENTITY::offset, Padre, pos, WAD_LEVEL::Sectors, WAD_ENTITY::size, textura_piso, textura_piso_id, textura_techo, textura_techo_id, y WAD_LEVEL::wad_fd. Referenciado por BSP_2D::importe_wadlevel(). |
Here is the call graph for this function:
|
Una nota respecto a las texturas: Cada pixel representa un area de 2x2 cm (4cm^2). Si las unidades flotantes usadas son los metros, las texturas de el piso y el techo deberan escalarse por FT metros, ya que son de 64x64 pixels. OJO: Toca revisar bien el mapeo de coordenadas de las texturas porque no estan empatando... Sera que son relativas a coordenadas locales del sector? Definición en la línea 972 del archivo bsp_2d.C. References altura_piso, altura_techo, CALIDAD_VISUAL::con_caras, con_paredes, CALIDAD_VISUAL::con_textura, BSP_2D::flats, marcado, BSP_2D::num_paredes, num_triangulos, Padre, BSP_2D::Paredes, _BSP2D_PARED::pintar_gl_3D(), pos, PRIMITIVA_triangulos, _BSP2D_PARED::sector_id, textura_piso_id, textura_techo_id, y Triangulos. Referenciado por BSP_2D::pintar_bsp(), y BSP_2D::pintar_gl_3D(). |
Here is the call graph for this function:
|
Dado que un sector es una cara plana en un modelo de un solido basado por la frontera, este metodo lo parte a punta de triangulos. Es importante notar que los sectores pueden contener contornos interiores, los cuales deben detectarse a partir de una lista desordenada de arcos que componen este sector. Se utiliza un algoritmo de triangularizacion de contornos de Raimund Seidel, publicado en su articulo "A simple and fast incremental randomized algorithm for computing trapezoidal decompositions and for triangulating polygons, Computational Geometry Theory & Applications, 1991" y una adaptacion de la implementacion de Narkhede A. and Manocha D., "Fast polygon triangulation algorithm based on Seidel's Algorithm, UNC-CH, 1994.". OJO: La parte de este algoritmo que detecta los contornos ha sido derivada por Oscar J. Chavarro -JEDILINK-, oscarchavarro@hotmail.com. Aunque parece funcionar bien, no posee una demostracion, en particular, de que sea una solucion optimal al problema. Seria interesante aplicarle "artilleria pesada" y verificarla formalmente. Se propone generalizarlo a 3D para incluirlo en la visualizacion poligonal de modelos basados en la frontera (BREP's). Definición en la línea 718 del archivo bsp_2d.C. References LISTA< _BSP2D_ARCO * >::anx(), LISTA< T >::anx(), _BSP2D_PARED::Arco_padre, _BSP2D_CONTORNOi::arcos, _BSP2D_ARCO::Der, LISTA< _BSP2D_ARCO * >::elimElem(), LISTA< T >::elimElem(), max_x, max_y, min_x, min_y, BSP_2D::num_paredes, num_triangulos, Padre, BSP_2D::Paredes, pos, _BSP2D_PARED::sector_id, LISTA< _BSP2D_ARCO * >::tam(), LISTA< T >::tam(), triangularice_cara(), Triangulos, _BSP2D_ARCO::v_destino, _BSP2D_ARCO::v_origen, BSP_2D::Vertices, WORD, _BSP2D_VERTICEi::x, y _BSP2D_VERTICEi::y. Referenciado por BSP_2D::importe_wadlevel(). |
Here is the call graph for this function:
|
|
|
|
|
|
|
|
|
Definición en la línea 213 del archivo bsp_2d.h. Referenciado por altura(), _BSP2D_HOJA::altura_cuadro(), importe_wad(), y pintar_gl_3D(). |
|
Definición en la línea 214 del archivo bsp_2d.h. Referenciado por importe_wad(), y pintar_gl_3D(). |
|
Definición en la línea 232 del archivo bsp_2d.h. Referenciado por _BSP2D_SECTOR(), BSP_2D::pintar_bsp(), BSP_2D::pintar_gl(), pintar_gl_3D(), y BSP_2D::pintar_gl_3D_wireframe(). |
|
Definición en la línea 211 del archivo bsp_2d.h. Referenciado por importe_wad(). |
|
Definición en la línea 231 del archivo bsp_2d.h. Referenciado por _BSP2D_SECTOR(), BSP_2D::pintar_bsp(), BSP_2D::pintar_gl(), pintar_gl_3D(), y BSP_2D::pintar_gl_3D_wireframe(). |
|
Definición en la línea 218 del archivo bsp_2d.h. Referenciado por altura(), y triangularize(). |
|
Definición en la línea 219 del archivo bsp_2d.h. Referenciado por altura(), y triangularize(). |
|
Definición en la línea 216 del archivo bsp_2d.h. Referenciado por triangularize(). |
|
Definición en la línea 217 del archivo bsp_2d.h. Referenciado por triangularize(). |
|
Definición en la línea 228 del archivo bsp_2d.h. Referenciado por altura(), pintar_gl_3D(), y triangularize(). |
|
Definición en la línea 221 del archivo bsp_2d.h. Referenciado por importe_wad(), pintar_gl_3D(), y triangularize(). |
|
Definición en la línea 234 del archivo bsp_2d.h. Referenciado por importe_wad(), pintar_gl_3D(), y triangularize(). |
|
Definición en la línea 223 del archivo bsp_2d.h. Referenciado por importe_wad(). |
|
Definición en la línea 225 del archivo bsp_2d.h. Referenciado por importe_wad(), y pintar_gl_3D(). |
|
Definición en la línea 224 del archivo bsp_2d.h. Referenciado por importe_wad(). |
|
Definición en la línea 226 del archivo bsp_2d.h. Referenciado por importe_wad(), y pintar_gl_3D(). |
|
Definición en la línea 229 del archivo bsp_2d.h. Referenciado por altura(), pintar_gl_3D(), y triangularize(). |