diff options
author | 2022-10-04 11:50:32 +0200 | |
---|---|---|
committer | 2022-10-04 11:50:32 +0200 | |
commit | ce2c795bdaca5709fa338f42b9f1c230372bbbbf (patch) | |
tree | 2d397710664d47d48e66f82ca0dbf3db4f3684f4 /examples/multitouch | |
parent | ddb8f5b96c3d142eb93d6f08367a502a28ed7e39 (diff) | |
download | iced-ce2c795bdaca5709fa338f42b9f1c230372bbbbf.tar.gz iced-ce2c795bdaca5709fa338f42b9f1c230372bbbbf.tar.bz2 iced-ce2c795bdaca5709fa338f42b9f1c230372bbbbf.zip |
Replace `voronoi` crate with `voronator`
Diffstat (limited to 'examples/multitouch')
-rw-r--r-- | examples/multitouch/Cargo.toml | 2 | ||||
-rw-r--r-- | examples/multitouch/src/main.rs | 40 |
2 files changed, 18 insertions, 24 deletions
diff --git a/examples/multitouch/Cargo.toml b/examples/multitouch/Cargo.toml index 63c5af74..f7c8c145 100644 --- a/examples/multitouch/Cargo.toml +++ b/examples/multitouch/Cargo.toml @@ -9,4 +9,4 @@ publish = false iced = { path = "../..", features = ["canvas", "tokio", "debug"] } tokio = { version = "1.0", features = ["sync"] } env_logger = "0.9" -voronoi = "0.1.4" +voronator = "0.2" diff --git a/examples/multitouch/src/main.rs b/examples/multitouch/src/main.rs index b2bf5427..5ac0e58d 100644 --- a/examples/multitouch/src/main.rs +++ b/examples/multitouch/src/main.rs @@ -144,21 +144,29 @@ impl<'a> canvas::Program<Message> for State { zones.sort_by(|a, b| a.0.partial_cmp(&b.0).unwrap()); // Generate sorted list of points - let vpoints: Vec<voronoi::Point> = - zones.iter().map(|zone| to_voronoi_point(&zone.1)).collect(); + let vpoints: Vec<(f64, f64)> = zones + .iter() + .map(|(_, p)| (f64::from(p.x), f64::from(p.y))) + .collect(); - let diagram = voronoi::voronoi(vpoints, 700.0); - let polys = voronoi::make_polygons(&diagram); + let diagram: voronator::VoronoiDiagram< + voronator::delaunator::Point, + > = voronator::VoronoiDiagram::from_tuple( + &(0.0, 0.0), + &(700.0, 700.0), + &vpoints, + ) + .expect("Generate Voronoi diagram"); - for (poly, zone) in polys.iter().zip(zones) { + for (cell, zone) in diagram.cells().iter().zip(zones) { let mut builder = canvas::path::Builder::new(); - for (index, pt) in poly.iter().enumerate() { - let pt = from_voronoi_point(pt); + for (index, p) in cell.points().iter().enumerate() { + let p = Point::new(p.x as f32, p.y as f32); match index { - 0 => builder.move_to(pt), - _ => builder.line_to(pt), + 0 => builder.move_to(p), + _ => builder.line_to(p), } } @@ -192,17 +200,3 @@ impl<'a> canvas::Program<Message> for State { vec![fingerweb] } } - -fn to_voronoi_point(pt: &iced::Point) -> voronoi::Point { - voronoi::Point::new(pt.x.into(), pt.y.into()) -} - -fn from_voronoi_point(pt: &voronoi::Point) -> iced::Point { - let x: f64 = pt.x.into(); - let y: f64 = pt.y.into(); - - Point { - x: x as f32, - y: y as f32, - } -} |