1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
extern crate cgmath; extern crate ideal; mod event; mod generator; mod beach_line; mod builder; mod diagram; pub use diagram::*; pub type Position = ::cgmath::Vector3<f64>; pub fn build<I: IntoIterator<Item = Position>>(positions: I, relaxations: usize) -> Diagram { if relaxations == 0 { builder::build::<generator::DiagramGenerator, I>(positions) } else { let mut centroids = builder::build::<generator::CentroidGenerator, I>(positions); for _ in 0..relaxations - 2 { centroids = builder::build::<generator::CentroidGenerator, generator::Centroids>(centroids); } builder::build::<generator::DiagramGenerator, generator::Centroids>(centroids) } }