Graphite/libraries/path-bool/src/path
Dennis Kobert a4ec50d8ba
Improve robustness and performance of the boolean operation algorithm (#2191)
* Improve perf of path bool lib

* Use swap remove

* Use outer/inner bounding box for inclusion testing

* Reuse allocations for hit testing

* Use direct root finding for inclusion testing

* Reuse bounding box

* Use faster hash and specify capacities

* Use hashmap based approach for find vertices

* Unroll find_vertecies loop and use 32 bit positions

* Tune initial vec capacities

* Remove unused bounding boxes

* Use smallvec for storing outgoing edges

* Improve allocations for compute_minor

* Use approximate bounding box for edge finding

* Transition aabb to use glam vecs

* Make find vertecies use 64 bit again this is slower but less likely to cause issues

* Improve intersection candidate finding

* Remove loop check in bit vec iter

* Special case cubic line intersections

* Optimize grid rounding and add debug output

* Remove file write

* Remove faulty line intersection

* Fix grid rounding

* Improve robustness and cleanaup code

* Make elided lifetime explicit

* Fix tests

* Fix a boolean ops crash

* Add comment

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-21 23:15:36 +00:00
..
intersection_path_segment.rs Improve robustness and performance of the boolean operation algorithm (#2191) 2025-08-21 23:15:36 +00:00
line_segment.rs Upgrade to the Rust 2024 edition (#2367) 2025-03-12 17:29:12 -07:00
line_segment_aabb.rs Improve robustness and performance of the boolean operation algorithm (#2191) 2025-08-21 23:15:36 +00:00
path_cubic_segment_self_intersection.rs Path Bool library code cleanup (#2000) 2024-09-23 12:16:31 +02:00
path_segment.rs Improve robustness and performance of the boolean operation algorithm (#2191) 2025-08-21 23:15:36 +00:00