# HG changeset patch # User unc0rr # Date 1539809901 -7200 # Node ID 78c798d655ad182d5450d0259e7a408e38ba0e1f # Parent 75eaf7c71789abe3b4f169c58c31f2e05b9c7998 Make use of LinePoints in Land2D::draw_line diff -r 75eaf7c71789 -r 78c798d655ad rust/land2d/Cargo.toml --- a/rust/land2d/Cargo.toml Wed Oct 17 22:45:33 2018 +0200 +++ b/rust/land2d/Cargo.toml Wed Oct 17 22:58:21 2018 +0200 @@ -5,3 +5,4 @@ [dependencies] vec2d = { path = "../vec2d" } +integral-geometry = { path = "../integral-geometry" } diff -r 75eaf7c71789 -r 78c798d655ad rust/land2d/src/lib.rs --- a/rust/land2d/src/lib.rs Wed Oct 17 22:45:33 2018 +0200 +++ b/rust/land2d/src/lib.rs Wed Oct 17 22:58:21 2018 +0200 @@ -1,3 +1,4 @@ +extern crate integral_geometry; extern crate vec2d; use std::cmp; @@ -146,10 +147,13 @@ } pub fn draw_line(&mut self, x1: i32, y1: i32, x2: i32, y2: i32, value: T) -> usize { - >::apply_along_line(x1, y1, x2, y2, &mut |x, y| { - self.map(y, x, |p| *p = value); - 1 - }) + integral_geometry::LinePoints::new(x1, y1, x2, y2) + .filter_map(|(x, y)| { + self.map(y, x, |p| { + *p = value; + Some(1) + }) + }).count() } pub fn fill(&mut self, start_x: i32, start_y: i32, border_value: T, fill_value: T) {