### 4 releases

0.2.1 | Sep 25, 2024 |
---|---|

0.2.0 | Sep 25, 2024 |

0.1.1 | Sep 25, 2024 |

0.1.0 | Sep 24, 2024 |

#**633** in Algorithms

**23** downloads per month

**ISC**license

35KB

638 lines

# delatin-rs

Simple and fast **TIN** generation library, written in Rust. Uses Delaunay triangulation.

Delatin is a port of Volodymyr Agafonkin's *delatin* (JavaScript) and Michael Fogleman's *hmm* (C++), which is in turn based on the paper Fast Polygonal Approximation of Terrains and Height Fields (1995) by Michael Garland and Paul Heckbert.

## Example

`use` `delatin``::``{`triangulate`,` Error`}``;`
`let` heights `=` `vec!``[``100.``1``,` `123.``4``,` `111.``5``,` `121.``4``]``;`
`let` width `=` `2``;`
`let` height `=` `2``;`
`let` max_error `=` Error`(``1.``0``)``;`
`//` points `Vec<(usize, usize)>`: A vector containing all the vertices of the triangulated mesh. Each point corresponds to heights vector index.
`//` triangles `Vec<(usize, usize, usize)>`: A vector containing all the triangles of the mesh, each defined by indices into the `points`.
`let` `(`points`,` triangles`)` `=` `triangulate``(``&`heights`,` width`,` height`,` max_error`)``?``;`

## Installation

`cargo`` add delatin`

## Plot triangulation result

Align your data in plot/src/main.rs and run:

`cargo`` run`` --`bin plot

## Benchmark test

`cargo`` run`` --`bin test` --`release

## TODO

- Add tests
- Add benchmarks
- Add more comments and docs