@@ -32,7 +32,7 @@ pub enum MovementMessage {
32
32
ZoomCanvasToFitAll ,
33
33
}
34
34
35
- #[ derive( Debug , Clone , Hash , Default , PartialEq ) ]
35
+ #[ derive( Debug , Clone , Default , PartialEq ) ]
36
36
pub struct MovementMessageHandler {
37
37
translating : bool ,
38
38
rotating : bool ,
@@ -43,7 +43,7 @@ pub struct MovementMessageHandler {
43
43
44
44
impl MovementMessageHandler {
45
45
fn create_document_transform_from_layerdata ( & self , layerdata : & LayerData , viewport_size : & ViewportPosition , responses : & mut VecDeque < Message > ) {
46
- let half_viewport = viewport_size. as_f64 ( ) / 2. ;
46
+ let half_viewport = * viewport_size / 2. ;
47
47
let scaled_half_viewport = half_viewport / layerdata. scale ;
48
48
responses. push_back (
49
49
DocumentOperation :: SetLayerTransform {
@@ -64,7 +64,6 @@ impl MessageHandler<MovementMessage, (&mut LayerData, &Document, &InputPreproces
64
64
self . translating = true ;
65
65
self . mouse_pos = ipp. mouse . position ;
66
66
}
67
-
68
67
RotateCanvasBegin { snap } => {
69
68
self . rotating = true ;
70
69
self . snapping = snap;
@@ -86,17 +85,17 @@ impl MessageHandler<MovementMessage, (&mut LayerData, &Document, &InputPreproces
86
85
}
87
86
MouseMove => {
88
87
if self . translating {
89
- let delta = ipp. mouse . position . as_f64 ( ) - self . mouse_pos . as_f64 ( ) ;
88
+ let delta = ipp. mouse . position - self . mouse_pos ;
90
89
let transformed_delta = document. root . transform . inverse ( ) . transform_vector2 ( delta) ;
91
90
92
91
layerdata. translation += transformed_delta;
93
92
self . create_document_transform_from_layerdata ( layerdata, & ipp. viewport_size , responses) ;
94
93
}
95
94
if self . rotating {
96
- let half_viewport = ipp. viewport_size . as_f64 ( ) / 2. ;
95
+ let half_viewport = ipp. viewport_size / 2. ;
97
96
let rotation = {
98
- let start_vec = self . mouse_pos . as_f64 ( ) - half_viewport;
99
- let end_vec = ipp. mouse . position . as_f64 ( ) - half_viewport;
97
+ let start_vec = self . mouse_pos - half_viewport;
98
+ let end_vec = ipp. mouse . position - half_viewport;
100
99
start_vec. angle_between ( end_vec)
101
100
} ;
102
101
@@ -140,8 +139,8 @@ impl MessageHandler<MovementMessage, (&mut LayerData, &Document, &InputPreproces
140
139
}
141
140
WheelCanvasZoom => {
142
141
let scroll = ipp. mouse . scroll_delta . scroll_delta ( ) ;
143
- let mouse = ipp. mouse . position . as_f64 ( ) ;
144
- let viewport_size = ipp. viewport_size . as_f64 ( ) ;
142
+ let mouse = ipp. mouse . position ;
143
+ let viewport_size = ipp. viewport_size ;
145
144
let mut zoom_factor = 1. + scroll. abs ( ) * VIEWPORT_ZOOM_WHEEL_RATE ;
146
145
if ipp. mouse . scroll_delta . y > 0 {
147
146
zoom_factor = 1. / zoom_factor
@@ -177,7 +176,7 @@ impl MessageHandler<MovementMessage, (&mut LayerData, &Document, &InputPreproces
177
176
let pos1 = document. root . transform . inverse ( ) . transform_point2 ( pos1) ;
178
177
let pos2 = document. root . transform . inverse ( ) . transform_point2 ( pos2) ;
179
178
let v1 = document. root . transform . inverse ( ) . transform_point2 ( DVec2 :: ZERO ) ;
180
- let v2 = document. root . transform . inverse ( ) . transform_point2 ( ipp. viewport_size . as_f64 ( ) ) ;
179
+ let v2 = document. root . transform . inverse ( ) . transform_point2 ( ipp. viewport_size ) ;
181
180
182
181
let center = v1. lerp ( v2, 0.5 ) - pos1. lerp ( pos2, 0.5 ) ;
183
182
let size = ( pos2 - pos1) / ( v2 - v1) ;
0 commit comments