@@ -110,7 +110,7 @@ impl DocumentMessageHandler {
110
110
self . active_document ( ) . layer_data . get ( path) . expect ( "Layerdata does not exist" )
111
111
}
112
112
fn layerdata_mut ( & mut self , path : & [ LayerId ] ) -> & mut LayerData {
113
- self . active_document_mut ( ) . layer_data . entry ( path. to_vec ( ) ) . or_insert ( LayerData :: new ( true ) )
113
+ self . active_document_mut ( ) . layer_data . entry ( path. to_vec ( ) ) . or_insert_with ( || LayerData :: new ( true ) )
114
114
}
115
115
#[ allow( dead_code) ]
116
116
fn create_transform_from_layerdata ( & self , path : Vec < u64 > , responses : & mut VecDeque < Message > ) {
@@ -124,8 +124,8 @@ impl DocumentMessageHandler {
124
124
) ;
125
125
}
126
126
fn create_document_transform_from_layerdata ( & self , viewport_size : & ViewportPosition , responses : & mut VecDeque < Message > ) {
127
- let half_viewport = viewport_size. to_dvec2 ( ) / 2. ;
128
- let layerdata = self . layerdata ( & vec ! [ ] ) ;
127
+ let half_viewport = viewport_size. as_dvec2 ( ) / 2. ;
128
+ let layerdata = self . layerdata ( & [ ] ) ;
129
129
let scaled_half_viewport = half_viewport / layerdata. scale ;
130
130
responses. push_back (
131
131
DocumentOperation :: SetLayerTransform {
@@ -159,7 +159,7 @@ impl DocumentMessageHandler {
159
159
. collect ( ) ;
160
160
161
161
layers_with_indices. sort_by_key ( |( _, indices) | indices. clone ( ) ) ;
162
- return layers_with_indices. into_iter ( ) . map ( |( path, _) | path) . collect ( ) ;
162
+ layers_with_indices. into_iter ( ) . map ( |( path, _) | path) . collect ( )
163
163
}
164
164
}
165
165
@@ -274,7 +274,7 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
274
274
}
275
275
} )
276
276
. collect :: < Vec < usize > > ( ) ;
277
- doc_title_numbers. sort ( ) ;
277
+ doc_title_numbers. sort_unstable ( ) ;
278
278
let mut new_doc_title_num = 1 ;
279
279
while new_doc_title_num <= self . documents . len ( ) {
280
280
if new_doc_title_num != doc_title_numbers[ new_doc_title_num - 1 ] {
@@ -430,7 +430,7 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
430
430
RotateCanvasBegin { snap } => {
431
431
self . rotating = true ;
432
432
self . snapping = snap;
433
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
433
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
434
434
layerdata. snap_rotate = snap;
435
435
self . mouse_pos = ipp. mouse . position ;
436
436
}
@@ -441,7 +441,7 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
441
441
self . mouse_pos = ipp. mouse . position ;
442
442
}
443
443
TranslateCanvasEnd => {
444
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
444
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
445
445
layerdata. rotation = layerdata. snapped_angle ( ) ;
446
446
layerdata. snap_rotate = false ;
447
447
self . translating = false ;
@@ -450,23 +450,23 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
450
450
}
451
451
MouseMove => {
452
452
if self . translating {
453
- let delta = ipp. mouse . position . to_dvec2 ( ) - self . mouse_pos . to_dvec2 ( ) ;
453
+ let delta = ipp. mouse . position . as_dvec2 ( ) - self . mouse_pos . as_dvec2 ( ) ;
454
454
let transformed_delta = self . active_document ( ) . document . root . transform . inverse ( ) . transform_vector2 ( delta) ;
455
455
456
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
457
- layerdata. translation = layerdata . translation + transformed_delta;
456
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
457
+ layerdata. translation += transformed_delta;
458
458
self . create_document_transform_from_layerdata ( & ipp. viewport_size , responses) ;
459
459
}
460
460
if self . rotating {
461
- let half_viewport = ipp. viewport_size . to_dvec2 ( ) / 2. ;
461
+ let half_viewport = ipp. viewport_size . as_dvec2 ( ) / 2. ;
462
462
let rotation = {
463
- let start_vec = self . mouse_pos . to_dvec2 ( ) - half_viewport;
464
- let end_vec = ipp. mouse . position . to_dvec2 ( ) - half_viewport;
463
+ let start_vec = self . mouse_pos . as_dvec2 ( ) - half_viewport;
464
+ let end_vec = ipp. mouse . position . as_dvec2 ( ) - half_viewport;
465
465
start_vec. angle_between ( end_vec)
466
466
} ;
467
467
468
468
let snapping = self . snapping ;
469
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
469
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
470
470
layerdata. rotation += rotation;
471
471
layerdata. snap_rotate = snapping;
472
472
responses. push_back (
@@ -480,7 +480,7 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
480
480
if self . zooming {
481
481
let difference = self . mouse_pos . y as f64 - ipp. mouse . position . y as f64 ;
482
482
let amount = 1. + difference * MOUSE_ZOOM_RATE ;
483
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
483
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
484
484
let new = ( layerdata. scale * amount) . clamp ( VIEWPORT_ZOOM_SCALE_MIN , VIEWPORT_ZOOM_SCALE_MAX ) ;
485
485
layerdata. scale = new;
486
486
responses. push_back ( FrontendMessage :: SetCanvasZoom { new_zoom : layerdata. scale } . into ( ) ) ;
@@ -489,22 +489,22 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
489
489
self . mouse_pos = ipp. mouse . position ;
490
490
}
491
491
SetCanvasZoom ( new) => {
492
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
492
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
493
493
layerdata. scale = new. clamp ( VIEWPORT_ZOOM_SCALE_MIN , VIEWPORT_ZOOM_SCALE_MAX ) ;
494
494
responses. push_back ( FrontendMessage :: SetCanvasZoom { new_zoom : layerdata. scale } . into ( ) ) ;
495
495
self . create_document_transform_from_layerdata ( & ipp. viewport_size , responses) ;
496
496
}
497
497
MultiplyCanvasZoom ( multiplier) => {
498
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
498
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
499
499
let new = ( layerdata. scale * multiplier) . clamp ( VIEWPORT_ZOOM_SCALE_MIN , VIEWPORT_ZOOM_SCALE_MAX ) ;
500
500
layerdata. scale = new;
501
501
responses. push_back ( FrontendMessage :: SetCanvasZoom { new_zoom : layerdata. scale } . into ( ) ) ;
502
502
self . create_document_transform_from_layerdata ( & ipp. viewport_size , responses) ;
503
503
}
504
504
WheelCanvasZoom => {
505
505
let scroll = ipp. mouse . scroll_delta . scroll_delta ( ) ;
506
- let mouse = ipp. mouse . position . to_dvec2 ( ) ;
507
- let viewport_size = ipp. viewport_size . to_dvec2 ( ) ;
506
+ let mouse = ipp. mouse . position . as_dvec2 ( ) ;
507
+ let viewport_size = ipp. viewport_size . as_dvec2 ( ) ;
508
508
let mut zoom_factor = 1. + scroll. abs ( ) * WHEEL_ZOOM_RATE ;
509
509
if ipp. mouse . scroll_delta . y > 0 {
510
510
zoom_factor = 1. / zoom_factor
@@ -515,7 +515,7 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
515
515
let delta = delta_size * -2. * ( mouse_percent - ( 0.5 , 0.5 ) . into ( ) ) ;
516
516
517
517
let transformed_delta = self . active_document ( ) . document . root . transform . inverse ( ) . transform_vector2 ( delta) ;
518
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
518
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
519
519
let new = ( layerdata. scale * zoom_factor) . clamp ( VIEWPORT_ZOOM_SCALE_MIN , VIEWPORT_ZOOM_SCALE_MAX ) ;
520
520
layerdata. scale = new;
521
521
layerdata. translation += transformed_delta;
@@ -524,16 +524,16 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
524
524
}
525
525
WheelCanvasTranslate { use_y_as_x } => {
526
526
let delta = match use_y_as_x {
527
- false => -ipp. mouse . scroll_delta . to_dvec2 ( ) ,
527
+ false => -ipp. mouse . scroll_delta . as_dvec2 ( ) ,
528
528
true => ( -ipp. mouse . scroll_delta . y as f64 , 0. ) . into ( ) ,
529
529
} * VIEWPORT_SCROLL_RATE ;
530
530
let transformed_delta = self . active_document ( ) . document . root . transform . inverse ( ) . transform_vector2 ( delta) ;
531
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
531
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
532
532
layerdata. translation += transformed_delta;
533
533
self . create_document_transform_from_layerdata ( & ipp. viewport_size , responses) ;
534
534
}
535
535
SetCanvasRotation ( new) => {
536
- let layerdata = self . layerdata_mut ( & vec ! [ ] ) ;
536
+ let layerdata = self . layerdata_mut ( & [ ] ) ;
537
537
layerdata. rotation = new;
538
538
self . create_document_transform_from_layerdata ( & ipp. viewport_size , responses) ;
539
539
responses. push_back ( FrontendMessage :: SetCanvasRotation { new_radians : new } . into ( ) ) ;
@@ -542,7 +542,7 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
542
542
let paths: Vec < Vec < LayerId > > = self . selected_layers_sorted ( ) ;
543
543
544
544
let delta = {
545
- let root_layer_rotation = self . layerdata_mut ( & vec ! [ ] ) . rotation ;
545
+ let root_layer_rotation = self . layerdata_mut ( & [ ] ) . rotation ;
546
546
let rotate_to_viewport_space = DAffine2 :: from_angle ( root_layer_rotation) . inverse ( ) ;
547
547
rotate_to_viewport_space. transform_point2 ( ( x, y) . into ( ) )
548
548
} ;
0 commit comments