kicad/libs/kimath
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
..
include Fix typo in triangulation return 2024-03-28 13:10:43 -07:00
src Improve SHAPE_POLY_SET fracture performance 2024-03-28 13:10:43 -07:00
CMakeLists.txt Transform is right at home in kimath 2023-09-07 18:03:33 -04:00
determine_if_point_inside_polygon.odt Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00