1
1
use crate :: core:: { ColourModel , Image , ImageBase } ;
2
- use ndarray:: { array, prelude:: * , s, Data } ;
3
- use ndarray_linalg:: * ;
2
+ use ndarray:: { prelude:: * , s, Data } ;
4
3
use num_traits:: { Num , NumAssignOps } ;
5
- use std:: cmp:: { max, min} ;
6
4
use std:: fmt:: Display ;
7
5
8
6
pub mod affine;
@@ -18,9 +16,9 @@ impl std::error::Error for TransformError {}
18
16
impl Display for TransformError {
19
17
fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
20
18
match self {
21
- TransformError :: InvalidTransform => return write ! ( f, "invalid transform" ) ,
19
+ TransformError :: InvalidTransform => write ! ( f, "invalid transform" ) ,
22
20
TransformError :: NonInvertibleTransform => {
23
- return write ! (
21
+ write ! (
24
22
f,
25
23
"Non Invertible Transform, Forward transform not yet implemented "
26
24
)
@@ -46,17 +44,16 @@ pub struct ComposedTransform<T: Transform> {
46
44
47
45
impl < T : Transform > Transform for ComposedTransform < T > {
48
46
fn apply ( & self , p : ( f64 , f64 ) ) -> ( f64 , f64 ) {
49
- return self . transform2 . apply ( self . transform1 . apply ( p) ) ;
47
+ self . transform2 . apply ( self . transform1 . apply ( p) )
50
48
}
51
49
52
50
fn apply_inverse ( & self , p : ( f64 , f64 ) ) -> ( f64 , f64 ) {
53
- return self
54
- . transform1
55
- . apply_inverse ( self . transform2 . apply_inverse ( p) ) ;
51
+ self . transform1
52
+ . apply_inverse ( self . transform2 . apply_inverse ( p) )
56
53
}
57
54
58
55
fn inverse_exists ( & self ) -> bool {
59
- return self . transform1 . inverse_exists ( ) && self . transform2 . inverse_exists ( ) ;
56
+ self . transform1 . inverse_exists ( ) && self . transform2 . inverse_exists ( )
60
57
}
61
58
}
62
59
@@ -85,30 +82,6 @@ struct Rect {
85
82
h : usize ,
86
83
}
87
84
88
- fn bounding_box < T : Transform > ( dims : ( f64 , f64 ) , transform : T ) -> Rect {
89
- let tl = transform. apply ( ( 0.0 , 0.0 ) ) ;
90
- let tr = transform. apply ( ( 0.0 , dims. 1 ) ) ;
91
- let br = transform. apply ( dims) ;
92
- let bl = transform. apply ( ( dims. 0 , 0.0 ) ) ;
93
-
94
- let tl = ( tl. 0 . round ( ) as isize , tl. 1 . round ( ) as isize ) ;
95
- let tr = ( tr. 0 . round ( ) as isize , tr. 1 . round ( ) as isize ) ;
96
- let br = ( br. 0 . round ( ) as isize , br. 1 . round ( ) as isize ) ;
97
- let bl = ( bl. 0 . round ( ) as isize , bl. 1 . round ( ) as isize ) ;
98
-
99
- let leftmost = min ( min ( tl. 0 , tr. 0 ) , min ( br. 0 , bl. 0 ) ) ;
100
- let topmost = min ( min ( tl. 1 , tr. 1 ) , min ( br. 1 , bl. 1 ) ) ;
101
- let rightmost = max ( max ( tl. 0 , tr. 0 ) , max ( br. 0 , bl. 0 ) ) ;
102
- let bottommost = max ( max ( tl. 1 , tr. 1 ) , max ( br. 1 , bl. 1 ) ) ;
103
-
104
- Rect {
105
- x : leftmost,
106
- y : topmost,
107
- w : ( rightmost - leftmost) as usize ,
108
- h : ( bottommost - topmost) as usize ,
109
- }
110
- }
111
-
112
85
impl < T , U , V > TransformExt < V > for ArrayBase < U , Ix3 >
113
86
where
114
87
T : Copy + Clone + Num + NumAssignOps ,
0 commit comments