X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fgeometry.rs;h=7ddc3ec0e4c94850b6c0c8fc339500e596d1f134;hb=b1075e661c2ce2f107350b8d4f5f9a92e047b93e;hp=540db53bff9568f488024837ac44857636c5eb34;hpb=953b4c960649b82f4e186c2a9afee5367270f0fc;p=kaka%2Frust-sdl-test.git diff --git a/src/geometry.rs b/src/geometry.rs index 540db53..7ddc3ec 100644 --- a/src/geometry.rs +++ b/src/geometry.rs @@ -38,6 +38,10 @@ impl Point { y: self.y as i32, } } + + pub fn cross_product(&self, p: Self) -> f64 { + return self.x * p.y - self.y * p.x; + } } macro_rules! impl_point_op { @@ -330,10 +334,7 @@ impl From> for (T, T) { pub fn supercover_line_int(p1: Point, p2: Point) -> Vec> { let d = p2 - p1; let n = point!(d.x.abs(), d.y.abs()); - let step = point!( - if d.x > 0 { 1 } else { -1 }, - if d.y > 0 { 1 } else { -1 } - ); + let step = point!(d.x.signum(), d.y.signum()); let mut p = p1; let mut points = vec!(point!(p.x as isize, p.y as isize));