11 releases

0.2.4 Dec 8, 2020
0.2.3 Sep 1, 2020
0.2.2 Aug 28, 2020
0.1.8 Aug 21, 2020

#1086 in Algorithms

Download history 81/week @ 2023-12-14 58/week @ 2023-12-21 53/week @ 2023-12-28 86/week @ 2024-01-04 177/week @ 2024-01-11 79/week @ 2024-01-18 23/week @ 2024-01-25 50/week @ 2024-02-01 51/week @ 2024-02-08 49/week @ 2024-02-15 72/week @ 2024-02-22 84/week @ 2024-02-29 162/week @ 2024-03-07 221/week @ 2024-03-14 194/week @ 2024-03-21 91/week @ 2024-03-28

671 downloads per month

MIT/Apache

140KB
1K SLoC

chull

Build Status crates.io

Documentation Convex hull approximation based on Quick hull. Available in 3-D or 2-D for now.

Examples

use chull::{ConvexHull,ConvexHullWrapper};
let p1 = vec![1.0, 1.0, 1.0];
let p2 = vec![1.0, 1.0, -1.0];
let p3 = vec![1.0, -1.0, 1.0];
let p4 = vec![1.0, -1.0, -1.0];
let p5 = vec![-1.0, 1.0, 1.0];
let p6 = vec![-1.0, 1.0, -1.0];
let p7 = vec![-1.0, -1.0, 1.0];
let p8 = vec![-1.0, -1.0, -1.0];
let p9 = vec![0.0, 0.0, 0.0];

let points = vec![p1, p2, p3, p4, p5, p6, p7, p8, p9];

// slow but robust
let cube1 = ConvexHullWrapper::try_new(&points, None).unwrap();
// fast but non-robust
let cube2 = ConvexHull::try_new(&points, std::f64::EPSILON*200.0, None).unwrap();

assert_eq!(cube1.volume(), 8.0);
let (v,i) = cube1.vertices_indices();
assert_eq!(v.len(), 8);
assert_eq!(i.len(), 6 * 2 * 3);

License: MIT/Apache-2.0

Dependencies

~495KB
~11K SLoC