kicad/libs
Céleste Wouters 76e0f94532 Improve SHAPE_POLY_SET fracture performance
Refactors `SHAPE_POLY_SET::fractureSingle()` to be more efficient, while
not changing the actual algorithm:

* increase cache locality by using contiguous arrays instead of what was
effectively a linked list
* reduce latency and jitter by replacing per-edge allocator calls with
ahead-of-time std::vector reserves
* increase cache efficiency by making the vertex struct smaller
* replace O(n^2) leftmost edge search with O(n log n) std::sort
* sort the polygons instead of the edges
* cut iteration count in half in the remaining O(polygons * edges) part

(cherry picked from commit e98c9f283f)
2024-03-28 13:10:43 -07:00
..
core Use 64-bit type to represent microseconds. 2024-03-03 21:47:23 +03:00
kimath Improve SHAPE_POLY_SET fracture performance 2024-03-28 13:10:43 -07:00
kiplatform Disable infinite panning when using XWayland. 2024-03-15 01:17:50 +03:00
sexpr Unwrap the FROM_UTF8 macro in favor of direct function 2023-09-09 00:10:57 -04:00
CMakeLists.txt Introduce core interface library 2023-04-06 15:01:18 +01:00