Estructuras de datos para complejos celulares generales (no tetraédricos)

8

Para mallas poligonales 2D, las representaciones de la estructura de datos QuadEdge y HalfEdge son suficientes para almacenar y permitir una consulta eficiente de toda la información topológica y de incidencia. ¿Existen estructuras de datos compactas y eficientes para mallas poliédricas 3D? Sé que ha habido un trabajo reciente sobre representaciones compactas para mallas tetraédricas, como, por ejemplo, SOT . No sé lo suficiente sobre estos para saber si se generalizan a mallas no tetraédricas no estructuradas.

Me imagino que los medios bordes podrían generalizarse a medias caras con medios bordes asociados, pero parece que hay muchos datos para almacenar, y puede haber representaciones más compactas. Debo agregar que realmente solo me importa recuperar información de facetas (como qué facetas están en el límite, qué facetas pertenecen a una determinada celda); La información de incidencia de borde no es tan útil.

Victor Liu
fuente

Respuestas:

7

Hay una extensión de medio borde en cualquier dimensión, llamada dardos en mapas combinatorios . Hay dos paquetes en CGAL que permiten usar estos mapas combinatorios en cualquier dimensión (ver aquí para mapas combinatorios y aquí para LinearCellComplex ).

Puede usar esta estructura de datos para representar cualquier objeto 3D subdividido Cuasi múltiple orientable. Citando de la página web de CGAL (sección 2.4 Propiedades del mapa combinatorio):

Un objeto cuasi-múltiple se define como:

Un cuasi-múltiple dD es un objeto obtenido al tomar algunas células d aisladas y permitir pegar las células d a lo largo de las células (d-1).

y orientable como:

Es orientable si es posible incrustarlo en el espacio euclidiano y definir una dirección global "izquierda" y "derecha" en cada punto del objeto incrustado.

gdamiand
fuente
¿Cómo se compara esto con la representación FacetEdge de Dobkin & Laszlo? Esa parece ser la única otra cosa que puedo encontrar.
Victor Liu
1
Son equivalentes En la representación de FacetEdge, existen principalmente 3 funciones: reloj , Enext y Fnext ; y en un mapa combinatorio 3D, hay 3 funciones , y . β1β2β3
Gdamiand
1
Tenga en cuenta que este sitio está a punto de ordenador ciencia , las implementaciones no biblioteca. Como tal, apreciamos las respuestas que contienen ideas y conceptos, no solo referencias a implementaciones.
Raphael