Polygon Boolean Operations Library - iOverlay #5864
Replies: 4 comments 4 replies
-
You have a nice algorithm description. We currently use Boost polygon for this purpose. Do you have a comparison of performance and features? Is there a C++ API? |
Beta Was this translation helpful? Give feedback.
-
A curiosity question: you use i32 for coordinates but how you handle intersection points that don't fall on an integer value when splitting segments? For example the self-intersecting (0,0) (3,1) (0,3) (3,0) (0,0) ? |
Beta Was this translation helpful? Give feedback.
-
@maliberty Finally, I found time to test the Boost library. Based on the results, it looks like Boost is an outsider in this race. I’m not a C++ expert, so there’s a small chance I may have done something wrong. However, I think it’s better to attract some attention to this. It might make more sense to switch to Clipper2. Here are the tests I conducted: Performance Tests |
Beta Was this translation helpful? Give feedback.
-
You seem to use boost.geometry, please compare with boost.polygon. |
Beta Was this translation helpful? Give feedback.
-
Hi OpenRoad Community,
I’d like to introduce my library iOverlay, which provides efficient 2D polygon Boolean operations. I believe this library could be particularly valuable for GDSII-related tasks and other polygon manipulations in EDA tools.
Over the past year, I’ve worked on implementing DRC rules and found that existing libraries often struggled with precision and performance, especially with large datasets. That’s why I developed iOverlay.
iOverlay has reached a stable version and is now ready for production use.
Here are some of its key features:
You can also read my Article for more information on how it works.
Looking forward to hearing your thoughts!
Beta Was this translation helpful? Give feedback.
All reactions