changeset 15235 | 58a0f2a6527b |
parent 15203 | decb2f1c682b |
child 15236 | 13041ae61ac5 |
15234:517f3a1dd5c2 | 15235:58a0f2a6527b |
---|---|
1 use fpnum::{distance, fp, FPNum, FPPoint}; |
1 use fpnum::{fp, integral_sqrt, FPNum, FPPoint}; |
2 use std::{ |
2 use std::{ |
3 cmp::{max, min}, |
3 cmp::{max, min}, |
4 ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, RangeInclusive, Sub, SubAssign}, |
4 ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, RangeInclusive, Sub, SubAssign}, |
5 }; |
5 }; |
6 |
6 |
43 std::cmp::max(self.x.abs(), self.y.abs()) |
43 std::cmp::max(self.x.abs(), self.y.abs()) |
44 } |
44 } |
45 |
45 |
46 #[inline] |
46 #[inline] |
47 pub fn integral_norm(self) -> u32 { |
47 pub fn integral_norm(self) -> u32 { |
48 distance(self.x, self.y).abs_round() |
48 let sqr = (self.x as u64).pow(2) + (self.y as u64).pow(2); |
49 integral_sqrt(sqr) as u32 |
|
49 } |
50 } |
50 |
51 |
51 #[inline] |
52 #[inline] |
52 pub const fn transform(self, matrix: &[i32; 4]) -> Self { |
53 pub const fn transform(self, matrix: &[i32; 4]) -> Self { |
53 Point::new( |
54 Point::new( |