diff -r 2ebd505e62c1 -r c47283feafac rust/integral-geometry/src/lib.rs --- a/rust/integral-geometry/src/lib.rs Tue Oct 30 02:14:00 2018 +0300 +++ b/rust/integral-geometry/src/lib.rs Tue Oct 30 05:55:58 2018 +0300 @@ -37,6 +37,12 @@ pub fn max_norm(self) -> i32 { std::cmp::max(self.x.abs(), self.y.abs()) } + + #[inline] + pub fn transform(self, matrix: &[i32; 4]) -> Self { + Point::new(matrix[0] * self.x + matrix[1] * self.y, + matrix[2] * self.x + matrix[3] * self.y) + } } macro_rules! bin_op_impl {