[v1.1.2] Performance improvements and overlapping boundaries support
This is a major release containing new features.
Performance Improvements
- Vertex insertion order is now randomized by default. This results in better performance overall and avoids many worst-case situations.
- Boost's RTree is replaced with a custom kd-tree implementation included into CDT sources.
It outperforms boost::rtree and has a significantly smaller memory footprint. - Boost RTree and nearest-random point locators are removed.
- Index types used by CDT are changed to 32-bit to reduce required memory. 64-bit indices can be enabled with
CDT_USE_64_BIT_INDEX_TYPE
.
Also see: Issue: #40 Pull-request: #45
Boost dependency is not necessary
As boost::rtree
is replaced with custom kd-tree implementation, boost is mostly needed for c++98 compatibility and not for performance.
This means that most of the users will not need to enable boost.
Overlapping boundaries support
Enables handling overlaping boundaries in hole-removal algorithm.
Here is an example:
Algorithm tracks edges that were constrained more than once in insertEdges
.
New PeelLayer
and CalculateTriangleDepth
functions handle overlapping boundaries.
Peel layer can now return seeds for next layer and deeper layers (due to overlapping boundaries).
Also see: Issue: #42 Pull-request: #43