Skip to content

Commit

Permalink
Update version to 0.2.0 for crates.io release
Browse files Browse the repository at this point in the history
  • Loading branch information
jbuckmccready committed May 13, 2022
1 parent baf9c2a commit 13ed571
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 38 deletions.
74 changes: 39 additions & 35 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,46 +2,50 @@

All notable changes to the cavalier_contours crate will be documented in this file.

## Unreleased
## 0.2.0

### Added ⭐
* Added CHANGELOG.md file for tracking changes and releases.
* New traits `PlineSource`, `PlineSourceMut`, and `PlineCreation` for sharing methods across
different polyline data views (for example sub views/selections over polylines or direction
inversion).
* `PlineViewData` and `PlineView` types. `PlineView` implements `PlineSource` trait allowing for
flexible views over polyline data to be processed with all the shared behavior/methods.
`PlineViewData` holds the data used to index into an underlying source polyline to form a
`PlineView`.

- Added CHANGELOG.md file for tracking changes and releases.
- New traits `PlineSource`, `PlineSourceMut`, and `PlineCreation` for sharing methods across
different polyline data views (for example sub views/selections over polylines or direction
inversion).
- `PlineViewData` and `PlineView` types. `PlineView` implements `PlineSource` trait allowing for
flexible views over polyline data to be processed with all the shared behavior/methods.
`PlineViewData` holds the data used to index into an underlying source polyline to form a
`PlineView`.

### Changed 🔧
* All Polyline methods have moved to the appropriate trait (`PlineSource`, `PlineSourceMut`, or
`PlineCreation`).
* Slices used in offset and boolean operations now all use new `PlineViewData` and `PlineView`
types.
* Changed polyline methods that returned `Cow` types to return `Option` types to indicate if changes
were done on the input polyline or not.
* Changed intersect functions (`circle_circle_intr`, `line_circle_intr`, and `line_line_intr`) to
accept epsilon value parameter for fuzzy float comparisons.
* Changed polyline offset and boolean operations to use `pos_equal_eps` epsilon value in intersect
functions.
* Changed `pline_seg_intr` function to avoid inconsistencies between intersect functions in some
cases involving line-arc intersects due to fuzzy comparing - this fixes problems that can arise in
operations that depend on finding intersects.
* Added `include_overlapping` parameter to `all_self_intersects_as_basic` function.

- All Polyline methods have moved to the appropriate trait (`PlineSource`, `PlineSourceMut`, or
`PlineCreation`).
- Slices used in offset and boolean operations now all use new `PlineViewData` and `PlineView`
types.
- Changed polyline methods that returned `Cow` types to return `Option` types to indicate if changes
were done on the input polyline or not.
- Changed intersect functions (`circle_circle_intr`, `line_circle_intr`, and `line_line_intr`) to
accept epsilon value parameter for fuzzy float comparisons.
- Changed polyline offset and boolean operations to use `pos_equal_eps` epsilon value in intersect
functions.
- Changed `pline_seg_intr` function to avoid inconsistencies between intersect functions in some
cases involving line-arc intersects due to fuzzy comparing - this fixes problems that can arise in
operations that depend on finding intersects.
- Added `include_overlapping` parameter to `all_self_intersects_as_basic` function.

### Fixed 🐛
* Fixed arc overlap intersects not being found in some cases and segment intersects disagreeing due
to fuzzy comparing causing incorrect output for polyline boolean operations and added test cases
that found the issue.
* Fixed bug in parallel offset caused when raw offset polyline produced an overlapping self
intersect. Parallel offset algorithm no longer includes overlapping intersects when finding self
intersects of raw offset polyline for creating slices.

- Fixed arc overlap intersects not being found in some cases and segment intersects disagreeing due
to fuzzy comparing causing incorrect output for polyline boolean operations and added test cases
that found the issue.
- Fixed bug in parallel offset caused when raw offset polyline produced an overlapping self
intersect. Parallel offset algorithm no longer includes overlapping intersects when finding self
intersects of raw offset polyline for creating slices.

### Removed 🔥
* `Polyline::visit_segments` (use `PlineSource::iter_segments` instead).
* `Polyline::len` method removed (use `PlineSource::vertex_count` instead).
* `PolylineSlice` trait and `OpenPlineSlice` type (covered by new view types and polyline traits).
* `PolylineSlice::stitch_onto` and `PolylineSlice::to_polyline` removed, to get same functionality
construct the view with `PlineData::view` and pass it to `PlineSourceMut::extend_remove_repeat` or
`PlineCreation::create_from_remove_repeat`.

- `Polyline::visit_segments` (use `PlineSource::iter_segments` instead).
- `Polyline::len` method removed (use `PlineSource::vertex_count` instead).
- `PolylineSlice` trait and `OpenPlineSlice` type (covered by new view types and polyline traits).
- `PolylineSlice::stitch_onto` and `PolylineSlice::to_polyline` removed, to get same functionality
construct the view with `PlineData::view` and pass it to `PlineSourceMut::extend_remove_repeat` or
`PlineCreation::create_from_remove_repeat`.
2 changes: 1 addition & 1 deletion cavalier_contours/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ keywords = ["algorithm", "2d", "computational", "geometry", "spatial"]
license = "MIT OR Apache-2.0"
name = "cavalier_contours"
repository = "https://github.com/jbuckmccready/cavalier_contours"
version = "0.1.0"
version = "0.2.0"

[features]
allow_unsafe = [] # feature has no explicit dependencies
Expand Down
4 changes: 2 additions & 2 deletions cavalier_contours_ffi/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ keywords = ["algorithm", "2d", "computational", "geometry", "spatial"]
license = "MIT OR Apache-2.0"
name = "cavalier_contours_ffi"
repository = "https://github.com/jbuckmccready/cavalier_contours"
version = "0.1.0"
version = "0.2.0"

[lib]
# using "lib" so this crate can be referenced and used directly by rust and "cdylib" so it can be used as a dynamic lib
crate-type = ["lib", "cdylib"]

[dependencies]
cavalier_contours = {version = "0.1", path = "../cavalier_contours"}
cavalier_contours = {version = "0.2", path = "../cavalier_contours"}

0 comments on commit 13ed571

Please sign in to comment.