From 035c5f5ea58a156942fe72a8db1265d7bf1f36d1 Mon Sep 17 00:00:00 2001 From: "Michael X. Grey" Date: Fri, 23 Aug 2024 01:44:40 +0800 Subject: [PATCH] Fix style Signed-off-by: Michael X. Grey --- .../src/interaction/select/place_object.rs | 11 +--- .../src/interaction/select/place_object_3d.rs | 5 +- .../interaction/select/replace_parent_3d.rs | 57 ++++++++++++------- 3 files changed, 41 insertions(+), 32 deletions(-) diff --git a/rmf_site_editor/src/interaction/select/place_object.rs b/rmf_site_editor/src/interaction/select/place_object.rs index 60de0235..96a9f346 100644 --- a/rmf_site_editor/src/interaction/select/place_object.rs +++ b/rmf_site_editor/src/interaction/select/place_object.rs @@ -93,17 +93,10 @@ impl<'w, 's> ObjectPlacement<'w, 's> { }); } - pub fn replace_parent_3d( - &mut self, - object: Entity, - workspace: Entity, - ) { + pub fn replace_parent_3d(&mut self, object: Entity, workspace: Entity) { let state = self .commands - .spawn(SelectorInput(ReplaceParent3d { - object, - workspace, - })) + .spawn(SelectorInput(ReplaceParent3d { object, workspace })) .id(); self.send(RunSelector { selector: self.services.replace_parent_3d, diff --git a/rmf_site_editor/src/interaction/select/place_object_3d.rs b/rmf_site_editor/src/interaction/select/place_object_3d.rs index 6f0f3fbe..fe88a9c0 100644 --- a/rmf_site_editor/src/interaction/select/place_object_3d.rs +++ b/rmf_site_editor/src/interaction/select/place_object_3d.rs @@ -493,7 +493,10 @@ pub fn on_placement_chosen_3d( } }; - commands.get_entity(id).or_broken_query()?.set_parent(parent); + commands + .get_entity(id) + .or_broken_query()? + .set_parent(parent); if let Ok(mut deps) = dependents.get_mut(parent) { deps.insert(id); } diff --git a/rmf_site_editor/src/interaction/select/replace_parent_3d.rs b/rmf_site_editor/src/interaction/select/replace_parent_3d.rs index 1c9e915f..62d53036 100644 --- a/rmf_site_editor/src/interaction/select/replace_parent_3d.rs +++ b/rmf_site_editor/src/interaction/select/replace_parent_3d.rs @@ -31,7 +31,8 @@ pub fn spawn_replace_parent_3d_workflow( let setup = app.spawn_service(replace_parent_3d_setup.into_blocking_service()); let find_parent = app.spawn_continuous_service(Update, replace_parent_3d_find_parent); let parent_chosen = app.spawn_service(replace_parent_3d_parent_chosen.into_blocking_service()); - let handle_key_code = app.spawn_service(on_keyboard_for_replace_parent_3d.into_blocking_service()); + let handle_key_code = + app.spawn_service(on_keyboard_for_replace_parent_3d.into_blocking_service()); let cleanup = app.spawn_service(replace_parent_3d_cleanup.into_blocking_service()); let keyboard_just_pressed = app .world @@ -178,7 +179,9 @@ pub fn replace_parent_3d_find_parent( return; } - info!("Received parent replacement selection signal for an invalid parent candidate"); + info!( + "Received parent replacement selection signal for an invalid parent candidate" + ); } None => { // The user has sent a signal to remove the object from its parent @@ -199,15 +202,23 @@ pub fn replace_parent_3d_find_parent( continue; }; - if AncestorIter::new(&parents, e).filter(|e| *e == object).next().is_some() { + if AncestorIter::new(&parents, e) + .filter(|e| *e == object) + .next() + .is_some() + { ignore_click = true; - tooltips.add(Cow::Borrowed("Cannot select a child of the object to be its parent")); + tooltips.add(Cow::Borrowed( + "Cannot select a child of the object to be its parent", + )); break; } if e == object { ignore_click = true; - tooltips.add(Cow::Borrowed("Cannot select an object to be its own parent")); + tooltips.add(Cow::Borrowed( + "Cannot select an object to be its own parent", + )); break; } @@ -239,16 +250,17 @@ pub fn replace_parent_3d_parent_chosen( let access = access.get(&key).or_broken_buffer()?; let state = access.newest().or_broken_state()?; - let parent = parent.and_then(|p| { - if frames.contains(p) { - Some(p) - } else { - // The selected parent is not a frame, so find its first ancestor - // that contains a FrameMarker - AncestorIter::new(&parents, p).find(|e| frames.contains(*e)) - } - }) - .unwrap_or(state.workspace); + let parent = parent + .and_then(|p| { + if frames.contains(p) { + Some(p) + } else { + // The selected parent is not a frame, so find its first ancestor + // that contains a FrameMarker + AncestorIter::new(&parents, p).find(|e| frames.contains(*e)) + } + }) + .unwrap_or(state.workspace); let previous_parent = parents.get(state.object).or_broken_query()?.get(); if parent == previous_parent { @@ -260,9 +272,9 @@ pub fn replace_parent_3d_parent_chosen( let inv_parent_tf = global_tfs.get(parent).or_broken_query()?.affine().inverse(); let relative_pose: Pose = Transform::from_matrix((inv_parent_tf * object_tf).into()).into(); - let [mut previous_deps, mut new_deps] = dependents.get_many_mut( - [previous_parent, parent] - ).or_broken_query()?; + let [mut previous_deps, mut new_deps] = dependents + .get_many_mut([previous_parent, parent]) + .or_broken_query()?; if let Ok(mut pose_mut) = poses.get_mut(state.object) { *pose_mut = relative_pose; @@ -273,16 +285,17 @@ pub fn replace_parent_3d_parent_chosen( // Do all mutations after everything is successfully queried so we don't // risk an inconsistent/broken world due to a query failing. - commands.get_entity(state.object).or_broken_query()?.set_parent(parent); + commands + .get_entity(state.object) + .or_broken_query()? + .set_parent(parent); previous_deps.remove(&state.object); new_deps.insert(state.object); Ok(()) } -pub fn on_keyboard_for_replace_parent_3d( - In(code): In, -) -> SelectionNodeResult { +pub fn on_keyboard_for_replace_parent_3d(In(code): In) -> SelectionNodeResult { if matches!(code, KeyCode::Escape) { // Simply exit the workflow if the user presses esc return Err(None);