haskell - Estructura de datos de representación de límites para la biblioteca 3D
data-structures language-agnostic (0)
Me gustaría implementar una biblioteca Haskell de fuente abierta que opere con datos geométricos, específicamente mallas poligonales 3D , como lo hacen Blender, Maya, 3ds Max o Houdini. El criterio más importante es el rendimiento al modificar partes de esas mallas, sin embargo, también quiero que sea capaz de representar objetos compuestos por:
- solo vértices
- polígonos con cualquier cantidad de vértices
- mallas con agujeros
- (no obligatorio) bordes sin polígonos
y poder asignar vértices, aristas y polígonos con propiedades nombradas. Una propiedad con nombre es solo una asignación entre un String y cualquier tipo de datos, como Int. Esto refleja la forma en que Houdini lo hace.
Después de leer acerca de las diferentes representaciones, me viene a la mente que las estructuras de datos de borde alado o medio se usan en una multitud de bibliotecas, pero pueden ser difíciles o imposibles de aplicar a objetos como (1.), mientras que las búsquedas para renderizar Las mallas dinámicas o la estructura de datos de borde radial no ofrecen explicaciones claras o implementaciones reales.
Mi pregunta es ¿cuál sería la mejor opción para representar estos objetos geo como se describe y por qué? Y en caso de que necesite representaciones que no sean de 2 columnas, ¿hay alguna implementación de estructuras de borde radial?