Skip to content

A Rust implementation of the Bourke Delaunay triangulation algorithm.

License

Notifications You must be signed in to change notification settings

tynril/rtriangulate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rtriangulate

crates.io Build Status Coverage Status

A Rust implementation of the Delaunay triangulation algorithm presented by Paul Bourke.

Find the crate documentation on docs.rs, or here on Github.

This was developed as an exercise to get more used to Rust. As far as I know, it works, but it might not. Also, this is a O(n1.5) (approximatively) algorithm, it's not parallelized, and it doesn't use the GPU at all.

Usage

Add the rtriangulate dependency to Cargo.toml:

[dependencies]
rtriangulate = "0.3"

And use the crate as such:

extern crate rtriangulate;

use rtriangulate::{TriangulationPoint, triangulate};

fn main() {
    // A list of points (which has to be sorted on x).
    // Note that you can use your own point type, just implement the rtriangulate::Point trait.
    let points = [
        TriangulationPoint::new(10.0, 50.0),
        TriangulationPoint::new(25.0, 40.0),
        TriangulationPoint::new(30.0, 40.0)
    ];

    // In case you need to sort your points:
    // points.sort_unstable_by(rtriangulate::sort_points);

    // Do the triangulation.
    let triangles = triangulate(&points).unwrap();

    println!("{:?}", triangles); // [Triangle(1, 0, 2)]
}

License

MIT - See LICENSE file.

About

A Rust implementation of the Bourke Delaunay triangulation algorithm.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages