Skip to content

Releases: iShape-Rust/iOverlay

v4.2.1

18 Jan 09:48

Choose a tag to compare

Changes

  • Changed: License updated from MIT to dual MIT OR Apache-2.0.
  • Added: Integration tests.

v4.2.0

31 Dec 10:32

Choose a tag to compare

Changes

  • Added OGC-valid output mode to split composite holes into valid contours.
  • Added fixed-scale/grid_size float overlay support to make operations more stable and predictable.

v4.0.0

26 May 19:02

Choose a tag to compare

Added

  • no_std support
    std math replaced with libm.

Modified

  • Memory-efficient API
    FloatOverlay and Overlay use a reusable buffer to reduce allocation overhead, improving performance by 5–15% in repeated operations.
    OverlayGraph is now a reference view (no longer owns geometry data)

  • Optional multithreading
    allow_multithreading is now an optional feature and disabled by default.

v3.3.0

27 Apr 17:34

Choose a tag to compare

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

23 Apr 12:48

Choose a tag to compare

Modified

Area type changed: usize -> u64
Using usize caused incorrect results on WebAssembly.

v3.1.1

22 Apr 11:32

Choose a tag to compare

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

17 Apr 16:54

Choose a tag to compare

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_custom
  • extract_shapes_custom
  • slice_custom_by
    ...and others

The slicing algorithm has been reworked and became more stable.

v2.0.0

20 Feb 13:08

Choose a tag to compare

Added

Buffering:

  • Path offset.
  • Polygon offset.

v1.10.0

02 Feb 17:35

Choose a tag to compare

Changed

  • Snap by radius can now grow without limit.
  • Enum Precision converted to struct.

Added

  • New SimplifyShape API simplify_shape_with_solver which allow to set Solver.

v1.9.0

20 Nov 14:27

Choose a tag to compare

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.