summaryrefslogtreecommitdiffstats
path: root/examples/multitouch
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-10-04 11:50:32 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-10-04 11:50:32 +0200
commitce2c795bdaca5709fa338f42b9f1c230372bbbbf (patch)
tree2d397710664d47d48e66f82ca0dbf3db4f3684f4 /examples/multitouch
parentddb8f5b96c3d142eb93d6f08367a502a28ed7e39 (diff)
downloadiced-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.toml2
-rw-r--r--examples/multitouch/src/main.rs40
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,
- }
-}