diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cfc5ce..f209358 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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, ...)`. +- 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 @@ -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. @@ -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`. @@ -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 diff --git a/Documentation~/benchmark-v1-v2.png b/Documentation~/benchmark-v1-v2.png new file mode 100644 index 0000000..9d37803 Binary files /dev/null and b/Documentation~/benchmark-v1-v2.png differ diff --git a/README.md b/README.md index 9ce71e1..fc929eb 100644 --- a/README.md +++ b/README.md @@ -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 @@ -55,7 +55,7 @@ Add or modify scoped registries in the manifest and in the dependencies provide selected version of the package
 "dependencies": {
-    "com.andywiecko.burst.triangulator": "1.5.0",
+    "com.andywiecko.burst.triangulator": "2.0.0",
     ...
 
See Unity docs for more details https://docs.unity3d.com/2021.1/Documentation/Manual/upm-scoped.html @@ -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 @@ -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 \ No newline at end of file diff --git a/package.json b/package.json index 83827ca..2dc09b3 100644 --- a/package.json +++ b/package.json @@ -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",