Skip to content

Commit

Permalink
Nudge only the shallowest selected layers
Browse files Browse the repository at this point in the history
  • Loading branch information
0HyperCube committed Sep 14, 2024
1 parent 426f3b2 commit 8a809d4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 9 deletions.
1 change: 0 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
},
// Rust Analyzer config
"rust-analyzer.cargo.allTargets": false,
"rust-analyzer.check.command": "clippy",
// ESLint config
"eslint.format.enable": true,
"eslint.workingDirectories": ["./frontend", "./website/other/bezier-rs-demos", "./website"],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -658,14 +658,17 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag

let opposite_corner = ipp.keyboard.key(resize_opposite_corner);
let delta = DVec2::new(delta_x, delta_y);
let network_interface = &self.network_interface;
let can_move = move |layer| {
network_interface
.selected_nodes(&[])
.is_some_and(|selected| selected.layer_visible(layer, network_interface) && !selected.layer_locked(layer, network_interface))
};

match ipp.keyboard.key(resize) {
// Nudge translation
false => {
for layer in self.network_interface.selected_nodes(&[]).unwrap().selected_layers(self.metadata()).filter(|&layer| {
self.network_interface.selected_nodes(&[]).unwrap().layer_visible(layer, &self.network_interface)
&& !self.network_interface.selected_nodes(&[]).unwrap().layer_locked(layer, &self.network_interface)
}) {
for layer in self.network_interface.shallowest_unique_layers(&[]).filter(|layer| can_move(*layer)) {
responses.add(GraphOperationMessage::TransformChange {
layer,
transform: DAffine2::from_translation(delta),
Expand Down Expand Up @@ -697,10 +700,7 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
let transformation = pivot * scale * pivot.inverse();
let document_to_viewport = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz);

for layer in self.network_interface.selected_nodes(&[]).unwrap().selected_layers(self.metadata()).filter(|&layer| {
self.network_interface.selected_nodes(&[]).unwrap().layer_visible(layer, &self.network_interface)
&& !self.network_interface.selected_nodes(&[]).unwrap().layer_locked(layer, &self.network_interface)
}) {
for layer in self.network_interface.shallowest_unique_layers(&[]).filter(|layer| can_move(*layer)) {
let to = document_to_viewport.inverse() * self.metadata().downstream_transform_to_viewport(layer);
let original_transform = self.metadata().upstream_transform(layer.to_node());
let new = to.inverse() * transformation * to * original_transform;
Expand Down

0 comments on commit 8a809d4

Please sign in to comment.