Releases: iShape-Rust/iOverlay
v7.0.0
v6.0.0
Migration: FloatPointCompatible now uses an associated scalar type
FloatPointCompatible no longer takes the scalar as a generic parameter. Implementations should define type Scalar instead.
Before:
impl FloatPointCompatible<f32> for MyPoint {
fn from_xy(x: f32, y: f32) -> Self { ... }
fn x(&self) -> f32 { ... }
fn y(&self) -> f32 { ... }
}After:
impl FloatPointCompatible for MyPoint {
type Scalar = f32;
fn from_xy(x: f32, y: f32) -> Self { ... }
fn x(&self) -> f32 { ... }
fn y(&self) -> f32 { ... }
}Public float overlay APIs were simplified accordingly. Types that previously carried both point and scalar generics now generally use only the point type, with scalar values expressed as P::Scalar.
v5.0.0
Starting with 5.0.0, i_overlay follows SemVer release cycles.
Changes
- Switched release policy to SemVer.
- Added
cargo-semver-checksto CI.
v4.5.0
Changes
- Changed: Reworked buffering algorithm. Now it's relay on default boolean overlay graph. Old legacy buffering overlay graph removed. New algorithm must be more precision stable and safe.
- Added: Unit tests.
v4.2.1
Changes
- Changed: License updated from MIT to dual MIT OR Apache-2.0.
- Added: Integration tests.
v4.2.0
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
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.