Skip to content

Commit

Permalink
chore(release): version 2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
andywiecko committed Sep 9, 2023
1 parent da7d276 commit e3b9e5e
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 16 deletions.
25 changes: 23 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

For online version see [Github Releases].

## [2.0.0] - 2023-09-09

### Added

- Introduced the `Preprocessor` enum with the following options: `None`, `COM`, and `PCA`. This enum replaces the previous transformation settings (`UseLocalTransformation`/`UsePCATransformation`).
- Introduced the `Status` (with values `OK`, `ERR`) enum along with corresponding native data. This enum is now utilized for input validation, with functionality extending beyond the Unity editor to encompass validation in builds as well.
- Added a benchmark test for mesh refinement, which will be used for future performance measurement.

### Changed

- Default values for `TriangulationSettings`.
- Updated Unity Editor to version `2022.2.1f1`.
- Bumped dependencies: Burst to `1.8.7`, Collections to `2.2.0`.

### Removed

- Removed the following deprecated methods: `Schedule(NativeArray<float2>, ...)`.
- Removed the following deprecated properties: `Positions`, `Triangles`, `PositionsDeferred`, `PositionsDeferred`.
- Removed the internal `TriangulatorNativeData` as part of a significant refactor to simplify the code structure. Internal implementations were cleaned up, and code structure was simplified.

## [1.5.0] - 2023-04-12

### Added
Expand Down Expand Up @@ -39,7 +59,7 @@ options in the triangulation settings, aka `RestoreBoundary`.
- Support for holes in the mesh.
- Upload project's logo generated using the above features.

### Changes
### Changed

- More verbose warnings during input validation.

Expand All @@ -49,7 +69,7 @@ options in the triangulation settings, aka `RestoreBoundary`.

- Add support for the Constraint Delaunay Triangulation with mesh refinement.

### Changes
### Changed

- Performance: Bower-Watson point insertion algorithm has been optimised and is based on the breadth-first search.
- Refactor: moved a few methods from jobs into `TriangulatorNativeData`.
Expand Down Expand Up @@ -80,6 +100,7 @@ options in the triangulation settings, aka `RestoreBoundary`.
- Initial release version

[Github Releases]: https://github.com/andywiecko/BurstTriangulator/releases
[2.0.0]: https://github.com/andywiecko/BurstTriangulator/releases/tag/v2.0.0
[1.5.0]: https://github.com/andywiecko/BurstTriangulator/releases/tag/v1.5.0
[1.4.0]: https://github.com/andywiecko/BurstTriangulator/releases/tag/v1.4.0
[1.3.0]: https://github.com/andywiecko/BurstTriangulator/releases/tag/v1.3.0
Expand Down
Binary file added Documentation~/benchmark-v1-v2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 15 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ The package provides also constrained triangulation (with mesh refinement) which
- [PCA transformation](#pca-transformation)
- [Benchmark](#benchmark)
- [Dependencies](#dependencies)
- [Roadmap v2.0](#roadmap-v20)
- [Things to consider](#things-to-consider)
- [Bibliography](#bibliography)

## Getting started
Expand All @@ -55,7 +55,7 @@ Add or modify scoped registries in the manifest
and in the dependencies provide selected version of the package
<pre>
"dependencies": {
"com.andywiecko.burst.triangulator": "1.5.0",
"com.andywiecko.burst.triangulator": "2.0.0",
...
</pre>
See Unity docs for more details https://docs.unity3d.com/2021.1/Documentation/Manual/upm-scoped.html
Expand Down Expand Up @@ -383,23 +383,25 @@ The package uses [`Burst`][burst] compiler, which produces highly optimized nati
Below one can see a log-log plot of elapsed time as a function of the final triangles count after mesh refinement.
Using Burst can provide more or less two order of magnitude faster computation.

> **Note**
> The following figure was obtained with `v1.0`.
![Burst Triangulator benchmark](Documentation~/burst-benchmark.png "Burst Triangulator benchmark")

Below, you'll find a performance comparison (Burst enabled) between `v1.0.0` and `v2.0.0` (for the refinement task).

![benchmark-v1-v2](Documentation~/benchmark-v1-v2.png)

## Dependencies

- [`Unity.Burst`][burst]
- [`Unity.Collections`][collections]

## Roadmap v2.0
## Things to consider

- [ ] Cache circles for constraint edges.
- [ ] Update `edgeToTriangles` buffer instead rebuilding.
- [ ] Update default `Setting`.
- [ ] Remove native data `struct` (move logic to jobs).
- [X] ~~Remove obsoletes.~~
- [X] ~~Bump packages and editor.~~
- [X] ~~Introduce state to support runtime (build) validation.~~
- [X] ~~"Extract" transformations.~~
- [ ] Consider using BVT (or another data structure) to accelerate computing.
- [ ] Consider caching circles for constraint edges.
- [ ] Consider refactoring the data structure to update the `edgeToTriangles` buffer instead of rebuilding it.

## Bibliography

Expand All @@ -410,5 +412,5 @@ Using Burst can provide more or less two order of magnitude faster computation.

[bowyerwatson]: https://en.wikipedia.org/wiki/Bowyer%E2%80%93Watson_algorithm
[rupperts]: https://en.wikipedia.org/wiki/Delaunay_refinement#Ruppert's_algorithm
[burst]: https://docs.unity3d.com/Packages/com.unity.burst@1.8/manual/index.html
[collections]: https://docs.unity3d.com/Packages/com.unity.collections@2.1/manual/index.html
[burst]: https://docs.unity3d.com/Packages/com.unity.burst@1.8
[collections]: https://docs.unity3d.com/Packages/com.unity.collections@2.2
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "com.andywiecko.burst.triangulator",
"version": "1.5.0",
"version": "2.0.0",
"displayName": "Burst Triangulator",
"description": "A single-file package which provides simple Delaunay triangulation of the given set of points with mesh refinement.",
"unity": "2022.2",
Expand Down

0 comments on commit e3b9e5e

Please sign in to comment.