Releases: iShape-Rust/iOverlay
v4.0.0
Added
no_stdsupport
std math replaced with libm.
Modified
-
Memory-efficient API
FloatOverlayandOverlayuse a reusable buffer to reduce allocation overhead, improving performance by 5–15% in repeated operations.
OverlayGraphis now a reference view (no longer owns geometry data) -
Optional multithreading
allow_multithreadingis now an optional feature and disabled by default.
v3.3.0
Fixed
API Design: options were mistakenly present in both the constructor and the custom function. Now they are only in the constructor.
v3.2.0
Modified
Area type changed: usize -> u64
Using usize caused incorrect results on WebAssembly.
v3.1.1
Added
IntOverlayOptions: options for integer boolean operations.
- preserve_input_collinear: Preserve collinear points before operations.
- output_direction: Desired output winding order.
- preserve_output_collinear: Preserve collinear points after operations.
- min_output_area: Minimum area threshold for output contours.
OverlayOptions<T>: options for float boolean operations.
- preserve_input_collinear: Preserve collinear points before operations.
- output_direction: Desired output winding order.
- preserve_output_collinear: Preserve collinear points after operations.
- min_output_area: Minimum area threshold for output contours.
- pub clean_result: If true, the result will be cleaned from precision-related issues (moved from
ContourFilter)
❌ Removed
ContourFilter<T>: Previously used for controlling output simplification and area threshold; now replaced by the more unified OverlayOptions.
3.0.1
Changed
Starting from this version:
- Outer contours are returned in counter-clockwise order
- Hole contours are in clockwise order
This aligns with the standard mathematical convention and improves compatibility with other geometry libraries.
Now it also can be adjustable with enum ContourDirection
API Cleanup
Advanced methods have been renamed for clarity and now use the *_custom suffix:
overlay_customextract_shapes_customslice_custom_by
...and others
The slicing algorithm has been reworked and became more stable.
v2.0.0
Added
Buffering:
- Path offset.
- Polygon offset.
v1.10.0
Changed
- Snap by radius can now grow without limit.
- Enum Precision converted to struct.
Added
- New SimplifyShape API
simplify_shape_with_solverwhich allow to set Solver.
v1.9.0
Added
Improved splitting logic for large datasets:
- Reworked fragment solver.
- Introduced a multithreaded solver, boosting performance up to 2x in some cases.
Removed
Deprecated f32/f64 API. Use the templated Float API instead.
v1.8.0
🚀 Added
- New Float API: Introducing a template-based Float API that works with iterators to eliminate data cloning. This API can work directly with user-defined Point structures. (Note: The older
F32/F64API is now deprecated). - Single Boolean Operation -
overlay: A faster Boolean operation that doesn’t require creating anOverlayGraph, giving a 10-20% performance boost in some cases.
🔄 Changed
- String Line API: Now officially supported.
- Clip Operation: Improved to maintain the original path order, keeping output more predictable and intuitive.
🛠️ Fixed
- Hole Solver: Reworked to ensure holes are connected more accurately.