--- a/rust/integral-geometry/src/lib.rs Sat Nov 03 02:16:13 2018 +0300
+++ b/rust/integral-geometry/src/lib.rs Sat Nov 03 02:21:45 2018 +0300
@@ -58,6 +58,11 @@
matrix[2] * self.x + matrix[3] * self.y,
)
}
+
+ #[inline]
+ pub fn rotate90(self) -> Self {
+ Point::new(-self.y, self.x)
+ }
}
#[derive(PartialEq, Eq, Clone, Copy, Debug)]
@@ -416,6 +421,11 @@
pub fn center(&self) -> Point {
(self.start + self.end) / 2
}
+
+ #[inline]
+ pub fn scaled_normal(&self) -> Point {
+ (self.end - self.start).rotate90()
+ }
}
impl IntoIterator for Line {