Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(release): version 2.0.0 #51

Merged
merged 1 commit into from
Sep 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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/[email protected]/manual/index.html
[collections]: https://docs.unity3d.com/Packages/com.unity.collections@2.1/manual/index.html
[burst]: https://docs.unity3d.com/Packages/[email protected]
[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