# Changelog - 0.2.x

## [0.2.0] - 2024-09-13

### Merged Pull Requests

- Feature/peroxide [#5](https://github.com/acgetchell/delaunay/pull/5)
- Update GitHub actions [#2](https://github.com/acgetchell/delaunay/pull/2)

### Added

- Add Cell and Vertex structs to delaunay_core [`301611a`](https://github.com/acgetchell/delaunay/commit/301611a856f1351c10c2a6a10a96f4e49d06a9c8)

- Added `Cell` struct with `new` method and associated tests
  - Added `Vertex` struct with `new` method and associated tests
  - Created new files for `cell.rs` and `vertex.rs`
  - Updated imports in other files
- Add CODEOWNERS file, audit-check workflow, and rename CI workflow
  [`3ee6c99`](https://github.com/acgetchell/delaunay/commit/3ee6c995da281b94d746c60d53c68a7030da6a91)
- Add Codecov and Clippy [`5b6d76b`](https://github.com/acgetchell/delaunay/commit/5b6d76b8f63d4faf1c5cf453ceb7ebc1750d4a23)
- Add clippy to cspell.json and update README.md with CI and rust-clippy badges
  [`10cc4bd`](https://github.com/acgetchell/delaunay/commit/10cc4bde0bfbd08c19d5a9e1be0682986371f92f)
- Add incident_cell to Vertex and neighbors to Cells [`0b137ab`](https://github.com/acgetchell/delaunay/commit/0b137ab609655655c8b4aae75391e07ad06b14c0)
- Add documentation [`bc3cf2a`](https://github.com/acgetchell/delaunay/commit/bc3cf2ab89aef32954a95d227471e026d91888d0)
- Add license [skip ci] [`24f6d0c`](https://github.com/acgetchell/delaunay/commit/24f6d0ca887ef9b475ebbc96ddba499d7bb6eb28)
- Add dim and contains_vertex functions to Cell [`4169560`](https://github.com/acgetchell/delaunay/commit/4169560ba4aef98d2b69f2b8f2adc3c46438fa0e)

- Added a new function `dim` that calculates the dimension of the cell by subtracting 1 from the number of vertices.
  - Added a new function `contains_vertex` that checks if a given vertex is present in the cell.

  Example usage:

  ```text
  let vertex1 = Vertex::new_with_data(Point::new([0.0, 0.0, 1.0]), 1);
  let vertex2 = Vertex::new_with_data(Point::new([0.0, 1.0, 0.0]), 1);
  let vertex3 = Vertex::new_with_data(Point::new([1.0, 0.0, 0.0]), 1);
  let vertex4 = Vertex::new_with_data(Point::new([1.0, 1.0, 1.0]), 2);
  let cell = Cell::new_with_data(vec![vertex1, vertex2, vertex3, vertex4], "three-one cell").unwrap();
  assert!(cell.contains_vertex(vertex1));
  ```

- Add circumcenter [`c6c5e0d`](https://github.com/acgetchell/delaunay/commit/c6c5e0d811a6b84021536e09163bdd32e7868d57)
- Add circumradius calculation to Cell struct [`e9a0142`](https://github.com/acgetchell/delaunay/commit/e9a014233d6ab9f4e657fa4d7c15a0e7848b58a7)

This commit adds a new method `circumradius` to the `Cell` struct in the `delaunay_core` module. The `circumradius` method calculates the distance from the
circumcenter of the cell to any vertex. It uses the existing `circumcenter` method and the distance formula from the nalgebra library.

  The commit also includes some minor code cleanup, removing unnecessary imports and debug print statements.

  Unit tests have been added for both successful and failed cases of calculating the circumradius.

  Circumradius calculation has been verified with human-readable output during testing.

- Added circumsphere_contains method [`51f40cd`](https://github.com/acgetchell/delaunay/commit/51f40cd38b4b5e560cd3a1a0953cd89262ad74c4)
- Added more tests [`fd7c05d`](https://github.com/acgetchell/delaunay/commit/fd7c05d260780eff3550e5420236f477e2060cbe)
- Add conversion from `coords` array to `[f64; D]` [`4524fb5`](https://github.com/acgetchell/delaunay/commit/4524fb51c7dbaef980dc984cd60efea77cd246bc)

- Added a new implementation for the `from` function in the `Point` struct that converts the `coords` array to `[f64; D]`.
  - Updated the comments to reflect this change.
- Find_extreme_coordinate [`1c5444e`](https://github.com/acgetchell/delaunay/commit/1c5444e5841a47fad5549db0db0a18fc5995afaf)

- In the `cell.rs` file, changed the type of vertex to match the circumcenter.
  - In the `triangulation_data_structure.rs` file, updated the function call to use `find_extreme_coordinate` instead of `find_min_coordinate`.
  - In the `utilities.rs` file, added a new function called `find_extreme_coordinate` that takes a hashmap of vertices and returns either the minimum or maximum
    coordinates based on the specified ordering.

  This commit makes changes related to changing vertex types and updating utility functions for finding extreme coordinates in different dimensions.

- Supercell [`37ff603`](https://github.com/acgetchell/delaunay/commit/37ff6031e7dbe5546eac8838aab61c1efa24cf01)

Added function that creates a dynamically sized supercell based on the vertices in the triangulation data structure.

- Implement Copy and Default traits [`650f484`](https://github.com/acgetchell/delaunay/commit/650f48462f02da67c98838fe82e6634a2b8d0e25)
- Added Serialization via serde [`a89ff48`](https://github.com/acgetchell/delaunay/commit/a89ff482c4247d0e4834414f8c5b27318bba9285)
- Added Deserialization via serde [`fe3a704`](https://github.com/acgetchell/delaunay/commit/fe3a704fdd852f53caeefb7ba8c66047a2bf8f19)
- Add Facet struct and related functionality [`204a70f`](https://github.com/acgetchell/delaunay/commit/204a70f78c92cb2eeed889c531b6677b0725f79f)

- Added a new file `facet.rs` with the implementation of the `Facet` struct.
  - The `Facet` struct represents a facet of a d-dimensional simplex.
  - It is defined in terms of a cell and the vertex in the cell opposite to it.
  - Provides convenience methods used in the Bowyer-Watson algorithm.
  - Facets are not stored directly in the Triangulation Data Structure (TDS), but created on-the-fly when needed.
- Added Facet vertices method [`5651810`](https://github.com/acgetchell/delaunay/commit/5651810da73d3eb4c71db7429b21e8e0a014be68)
- Add Codacy security scan workflow [`c6a4742`](https://github.com/acgetchell/delaunay/commit/c6a47428d5fa12dd9eacf4d0f1c5745eb3ec55a1)
- Implement PartialEq, Eq, and PartialOrd on Vertex [`1430ce1`](https://github.com/acgetchell/delaunay/commit/1430ce1c96e100142239a5f4a50826e2064656a2)
- Add equality and order implementations for Cell, Facet, and Vertex
  [`0e16c16`](https://github.com/acgetchell/delaunay/commit/0e16c16d2febcc76d8b3c176770ab1f253969d65)
- Add functions to refactor Bowyer-Watson [`e603652`](https://github.com/acgetchell/delaunay/commit/e603652dfc6a6e6d861a403c200b766f09467c7c)
- Use derive_builder [`1d6adc8`](https://github.com/acgetchell/delaunay/commit/1d6adc804dc67fc34a92f4274bbaefcc45535573)

### Changed

- Initial commit [`c6dc73a`](https://github.com/acgetchell/delaunay/commit/c6dc73a4d7443599ef7fa9dbee750e689ecabadc)
- Rename README.md file [`3d58871`](https://github.com/acgetchell/delaunay/commit/3d5887157b5249704dc19e429447732ca86aad07)
- Refactor README.md to include links and clarify project goals
  [`b75bd35`](https://github.com/acgetchell/delaunay/commit/b75bd35333f5cf53eabe26d1c640239c4c4991e0)
- Update README.md formatting and fix hyperlink syntax [`2143a89`](https://github.com/acgetchell/delaunay/commit/2143a893bcefd696c9b1932a0a96065e30620c39)
- Update README.md formatting and fix hyperlinks [`0620071`](https://github.com/acgetchell/delaunay/commit/0620071273a4ec16a0a1b3b34db0ab551677b3c6)
- Create rust.yml [`885f1d4`](https://github.com/acgetchell/delaunay/commit/885f1d40f2537e7983fbac22acb2e76f4e0edfb6)
- Use uuid to identify cells and vertices [`ebc1c61`](https://github.com/acgetchell/delaunay/commit/ebc1c61a06729db927b03d444a889d4c9c6b9d6e)
- Bare-bones Tds ctor, make data optional [`218cfc3`](https://github.com/acgetchell/delaunay/commit/218cfc3a1a2e35e82e7de30809a0a149b41dc762)
- Tell codecov to ignore lib.rs [`7e8ae59`](https://github.com/acgetchell/delaunay/commit/7e8ae59353c3258dc71eb3e66f58c1cf85986751)
- Construct hashmap of vertices in tds [`2559b06`](https://github.com/acgetchell/delaunay/commit/2559b06d0e98dd212329e2f38949baaa955b4026)
- 3D -> d-D [`62359b5`](https://github.com/acgetchell/delaunay/commit/62359b5c932e644ebf4794c53d8adac252442d5e)
- Refactor `dim` method to calculate the dimension based on the number of vertices. Update tests accordingly.
  [`0a080de`](https://github.com/acgetchell/delaunay/commit/0a080ded3630c98385bb33d58f8f1c304fd28afc)
- Constrain cell dimensionality [`693a1df`](https://github.com/acgetchell/delaunay/commit/693a1df2e91a40157626e430c9a351bf053b22ee)
- Tds add function and dimensionality constraints [`7645f34`](https://github.com/acgetchell/delaunay/commit/7645f34e504e5a8a3361b2dec47d87e0738aff7a)
- Refactor Tds struct and add new methods for counting vertices and cells
  [`e701d62`](https://github.com/acgetchell/delaunay/commit/e701d62947e7dfc06c24ebd5abdd3f9e9e98e185)
- More documentation [`94bbbcb`](https://github.com/acgetchell/delaunay/commit/94bbbcb54325a3f3a37ae429fe7aaa850c56a438)
- So Codecov doesn't count Rustdoc tests [`20227be`](https://github.com/acgetchell/delaunay/commit/20227be345fb60fc44e45fae70d94d3e24c0a463)
- Layout structure and future work [`366dbad`](https://github.com/acgetchell/delaunay/commit/366dbad4cea224cf47e616b99e3629fae6d07dc9)
- Partial Bowyer-Watson algorithm implementation [`287f368`](https://github.com/acgetchell/delaunay/commit/287f368e70263bf031807290f4d092b919fc2fa5)
- Test for auto traits [`ba20c84`](https://github.com/acgetchell/delaunay/commit/ba20c846c1659c0161ae9ebaadc09e705df21022)
- Update README [`73a4c0f`](https://github.com/acgetchell/delaunay/commit/73a4c0f7f4e76f3c5e733f6e2d8f983f6947c754)
- Cargo fmt [`f6ab29f`](https://github.com/acgetchell/delaunay/commit/f6ab29f9cb4a8f329484edbb2a0051dd0b156bee)
- Update dependencies in Cargo.toml and fix test assertions [`d2aff26`](https://github.com/acgetchell/delaunay/commit/d2aff26b8fc0e7652d3485de94ae49a28577aa32)
- Update Codacy [`dc1f5b9`](https://github.com/acgetchell/delaunay/commit/dc1f5b9a115e7084be52785c7132180daf9b03fd)
- Documentation fixes [`bb8a8a3`](https://github.com/acgetchell/delaunay/commit/bb8a8a3afd026d9bf8ac0ab611a690b587978a42)
- Debugging Bowyer-Watson [`9e7ba59`](https://github.com/acgetchell/delaunay/commit/9e7ba59b1f4881d36f0423377d72d3d8bdae158f)
- PartialEq, Eq, and PartialOrd on Cells [`530cd68`](https://github.com/acgetchell/delaunay/commit/530cd68b704ba5d2b08e7726055351917a8f8f97)
- Rationalize traits [`2102809`](https://github.com/acgetchell/delaunay/commit/21028093b47997b0e46f766ce05a903ef5e2ba86)
- Update Codacy Analysis CLI version and dependencies [`7d6b6c6`](https://github.com/acgetchell/delaunay/commit/7d6b6c682d32573442141199abfd3bfff0bb97e7)
- Interlink documentation [`8834e5c`](https://github.com/acgetchell/delaunay/commit/8834e5cffa8afac5fc0d7df036f7975980920808)
- Update package versions in Cargo.lock and Cargo.toml, [`ed7206d`](https://github.com/acgetchell/delaunay/commit/ed7206dac6cbea1a5b5d63e4141421c3f8ad6127)
- Update GitHub actions [#2](https://github.com/acgetchell/delaunay/pull/2)
  [`e44ce9f`](https://github.com/acgetchell/delaunay/commit/e44ce9fab33a6c4a8971ef3a80bf15b2e63d4c06)
- Fix libc [`c36bc97`](https://github.com/acgetchell/delaunay/commit/c36bc97cda68db1bbaf4aee25ac39550b7dacbc3)

And a few other trivial changes.

- Tests for cell facets [`f46f2f6`](https://github.com/acgetchell/delaunay/commit/f46f2f6dc435875cac69698d9a9aff7fdef37a2b)
- Refactor Bowyer-Watson [`e122aa9`](https://github.com/acgetchell/delaunay/commit/e122aa9d362e8682a38ca9ebfe602d523d3749cb)
- Deprecate Vector::new and Vector::new_with_data [`c1fc858`](https://github.com/acgetchell/delaunay/commit/c1fc858a3da2a23aba5ced235a07533bf96c443e)
- Remove Vertex::new and Vertex::new_with_data [`3d01927`](https://github.com/acgetchell/delaunay/commit/3d01927397d6ba919c5c5cf71e6be49260dcc70b)
- Deprecate Cell::new and Cell::new_with_data [`fa9f4d5`](https://github.com/acgetchell/delaunay/commit/fa9f4d50b77cfe0eb769b2f5f41fb9fb4c9bf165)
- Entirely replace Cell:new with CellBuilder [`6d75728`](https://github.com/acgetchell/delaunay/commit/6d757285791649d7398a1a437a20171843d5934e)

CellBuilder validator is nice.

- Feature/peroxide [#5](https://github.com/acgetchell/delaunay/pull/5)
  [`196beeb`](https://github.com/acgetchell/delaunay/commit/196beeb1c42539c49dfd11d0803f14462cb6ffac)
- Merge remote-tracking branch 'origin/main' [`a51a6ef`](https://github.com/acgetchell/delaunay/commit/a51a6ef3df18dfc03afc6f7318bbbf23ab0eeef7)
- Better tests, error messages [`6738259`](https://github.com/acgetchell/delaunay/commit/6738259cee47bbcfe6c160121df0081b9ea4ee68)

### Documentation

- Fix audit badge [`4a1ef9c`](https://github.com/acgetchell/delaunay/commit/4a1ef9c7e480d49c4e762647c192b4652b07a584)
- Documentation fixes and dependency updates [`3ca481d`](https://github.com/acgetchell/delaunay/commit/3ca481d444d58488bb74359604837d3bd808a8da)

### Fixed

- Fixing circumcircle [`e7204f0`](https://github.com/acgetchell/delaunay/commit/e7204f03d7f89f549cd8d4ba712d573bf1d45a5f)
- Fix circumsphere function -- it works! [`9fac2c1`](https://github.com/acgetchell/delaunay/commit/9fac2c1223a02aa6ac939784a868acafcf00883f)
- Fix issues identified by CodeQL [`ec1dc54`](https://github.com/acgetchell/delaunay/commit/ec1dc5492a7a7ddefcc6e74d843bb9465d74260a)
- Fix trait bounds and clippy lint [`701e326`](https://github.com/acgetchell/delaunay/commit/701e326f316f5a106dd33493ff730a05184e288c)
- Fix traits to be consistent across Vertex, Cell, Facet, Tds
  [`d55df6f`](https://github.com/acgetchell/delaunay/commit/d55df6f5d0cf42d57e35d42ca7a9cb0906f52ac4)

### Maintenance

- Update Codecov and dependencies [`9538214`](https://github.com/acgetchell/delaunay/commit/95382142398c1e5b96f81679e44e9f83f1916bfd)
- Update dependencies [`581949f`](https://github.com/acgetchell/delaunay/commit/581949fadca235f10bafff991990809fe26e0818)

Resolve Rustsec Advisory for bytemuck 1.16.1, update Codacy.

- Reduce CodeCov expectations [`0f7a2c0`](https://github.com/acgetchell/delaunay/commit/0f7a2c0ced35dbce7b23853346b3364a55bde362)
- Fix ci workflows [`04f680d`](https://github.com/acgetchell/delaunay/commit/04f680d02903a9525b09675610841d49c99ad62f)

Don't need to double-submit jobs for merged PRs.

[0.2.0]: https://github.com/acgetchell/delaunay/tree/v0.2.0
