Description
New Features
- Add CoverageValidator CoveragePolygonValidator
- Add CoverageGapFinder
- Add CoverageUnion
- Add CoverageSimplifier
- Add OverlayNG support for simple GeometryCollection inputs
- Add Geometry.hasDimension(int dim) method
- Add ConcaveHull.alphaShape function
- Add OffsetCurve Joined mode
- Add PointLocation.isOnSegment function
- Add RelateNG API for improved topological relationship functionality and performance
Functionality Improvements
- Improve TopologyPreservingSimplifier to prevent edge-disjoint line collapse
- Improve OffsetCurve to return more linework for some input situations
- Reduce buffer curve short fillet segments
- Added ability to specify boundary for LargestEmptyCircle
- Improve DouglaPeuckerSimplifier and TopologyPreservingSimplifier to handle ring endpoints
- Add Angle functions sinSnap and cosSnap to avoid small errors, e.g. with buffer operations
- Improve Buffer input simplification for rings
- Improve CoverageSimplifier with ring removal, smoothing, inner/outer and per-feature tolerances
Bug Fixes
- Fix WKBReader and WKBWriter handling of M measures when writing to WKB and reading from WKB
- Fix PreparedGeometry handling of EMPTY elements
- Fix WKBReader parsing of WKB containing multiple empty elements
- Fix LineSegment.orientationIndex(LineSegment) to correct orientation for non-collinear segments on right
- Fix DepthSegment compareTo method
- Ensure GeometryFixer does not change coordinate dimension
- Improve ConvexHull radial sort robustness
- Improve robustness of Delaunay Triangulation frame size heuristic
- Fix PreparedLineString.intersects to handle mixed GCs correctly
- Fix QuadEdgeSubdivision.TriangleEdgesListVisitor
- Fix PolygonHoleJoiner to handle all valid inputs (allows PolygonTriangulator, ConstrainedDelaunayTriangulator, and ConcaveHullOfPolygons to work correctly)
- Fix OffsetCurve handling of input with repeated points
- Fix OffsetCurve handling zero offset distance
- Fix MaximumInscribedCircle and LargestEmptyCircle to avoid long looping for thin inputs
- Fix OffsetCurve to use a minimum QuadrantSegs value
- Fix HilbertEncoder Y extent handling
- Fix Geometry.getCoordinate to return non-null coordinate for collections with empty first element
- Fix LargestEmptyCircle to handle polygonal obstacles
- Make intersection computation more robust
- Fix VariableBuffer to handle zero vertex buffer distances correctly
- Fix IncrementalDelaunayTriangulator to ensure triangulation boundary is convex
- Fix OverlayNG Area Check heuristic for difference
- Fix InteriorPointPoint to handle empty elements
- Fix DistanceOp for empty elements
- Fix predicates for MultiPoint with EMPTY
- Fix InteriorPoint for MultiLineString with EMPTY
- Fix TopologyPreservingSimplifier to prevent incorrect topology from jumping components
- Fix OffsetCurve to ensure end segments are included
- Fix PointLocator to respect BoundaryNodeRule for single lines
- Fix BufferOp Inverted Ring Removal check
- Improve VariableBuffer segment buffer cap generation
- Fix TopologyPreservingSimplifier ring endpoint removal indexing
Performance Improvements
- Improve Polygonizer performance in some cases with many islands
- Improve Convex Hull performance by avoiding duplicate uniquing
- Improve HPRtree performance
- Improve performance of noding and overlay via HPRtree
- Improve DistanceOp performance for Point-Point
- Improve CoveragePolygonValidator via section performance optimization
Conforms To UI/UX Guidelines
Not applicable (project doesn't provide UI)