Delaunay32: triangulación de Delaunay 2D rápida y paralela en C++

Fuentes: Delaunay32: fast, parallel 2D Delaunay triangulation in C++ with exact integer predicates

Delaunay32 es una biblioteca en C++17 para calcular la triangulación de Delaunay de conjuntos de puntos en dos dimensiones. Está pensada para datos ya discretos o que admitan una cuantificación uniforme de alta resolución, como píxeles, muestras de rásters, proyecciones de vóxeles, geometría de punto fijo o conjuntos espaciales proyectados. También acepta coordenadas en coma flotante: la biblioteca las cuantifica internamente y devuelve índices que siguen referenciando las coordenadas originales, por lo que las decisiones topológicas sobre aristas se realizan con aritmética exacta y los puntos de entrada no se modifican.

El núcleo combina predicados exactos con enteros (orientación y prueba de incircunferencia), un algoritmo divide y venceza ordenado por código de Morton, una representación compacta mediante dos-dardos y multihilo opcional. Entre sus características destacan la entrada con enteros de 32 bits con signo, la gestión determinista de duplicados, la triangulación restringida para segmentos enteros que no se cruzan, la exportación opcional de adyacencias medio-arista y de la envolvente convexa, y la cuantificación automática, de paso fijo o de escala fija con políticas de colisión. La biblioteca se distribuye bajo licencia MIT y no tiene dependencias para el uso normal.

Según los benchmarks publicados con un millón de puntos en compilación de release, el modo multihilo automático de Delaunay32 sirve como referencia 1,0×; Fade2D tarda unas 4,5 veces más en triangulación sin restricciones y unas 4,3 veces más con restricciones, mientras que delaunator-cpp tarda alrededor de 11 veces más en el caso sin restricciones. Delaunay32 se integra mediante CMake y ofrece objetivos de exportación para la biblioteca principal y un módulo complementario opcional con muestreo de puntos, exportación a JSON y SVG y consultas de dominio. Incluye guías de uso, ejemplos de polígonos con huecos y SVG, y pruebas con CTest.