I've been working on a new codebase for JTS Overlay, called OverlayNG (Overlay Next Generation). It provides the following improvements to the original overlay code (which dates back almost 20 years):
- improves robustness (no more TopologyExceptions!)
- supports arbitrary precision models
- supports snap-rounding to provide full robustness
- allows pluggable noding
- a cleaner topology model
- a simpler graph structure
- a cleaner codebase, separated from other JTS functionality
- includes significant optimizations (such as clipping to overlap rectangle)
The code is now functional, although it is not yet performant enough for production, since the snap-rounding noder is still under development.
It would be great if anyone is able to try this out and provide feedback on API design, and operation correctness.
For an entry point to the code see this set of TestBuilder functions:
Feel free to reach out if more help is needed to get started.
Dr JTS (Martin)
_______________________________________________