From 32fe589fc32ee575eb884259a72718a22b472634 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Wed, 8 Aug 2018 14:00:35 -0700 Subject: [PATCH] Create and use local RootSelection property on UIVolumes --- PartPreviewWindow/View3D/Gui3D/MoveInZControl.cs | 14 +++++++------- PartPreviewWindow/View3D/Gui3D/SelectionShadow.cs | 2 +- PartPreviewWindow/View3D/InteractionVolume.cs | 10 ++++++++++ PartPreviewWindow/View3D/SceneActions.cs | 2 +- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/PartPreviewWindow/View3D/Gui3D/MoveInZControl.cs b/PartPreviewWindow/View3D/Gui3D/MoveInZControl.cs index 94cc18cbb..9129a07fb 100644 --- a/PartPreviewWindow/View3D/Gui3D/MoveInZControl.cs +++ b/PartPreviewWindow/View3D/Gui3D/MoveInZControl.cs @@ -68,7 +68,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { ForceHide = () => { - var selectedItem = InteractionContext.Scene.RootSelectedItem; + var selectedItem = RootSelection; // if the selection changes if (selectedItem != ActiveSelectedItem) { @@ -104,7 +104,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow zHeightDisplayInfo.EditComplete += (s, e) => { - var selectedItem = InteractionContext.Scene.RootSelectedItem; + var selectedItem = RootSelection; Matrix4X4 startingTransform = selectedItem.Matrix; @@ -154,7 +154,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow shouldDrawMoveControls = false; } - var selectedItem = InteractionContext.Scene.RootSelectedItem; + var selectedItem = RootSelection; if (selectedItem != null) { if (shouldDrawMoveControls) @@ -187,7 +187,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public override void OnMouseDown(MouseEvent3DArgs mouseEvent3D) { - var selectedItem = InteractionContext.Scene.RootSelectedItem; + var selectedItem = RootSelection; if (mouseEvent3D.info != null && selectedItem != null) @@ -210,7 +210,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public override void OnMouseMove(MouseEvent3DArgs mouseEvent3D) { - var selectedItem = InteractionContext.Scene.RootSelectedItem; + var selectedItem = RootSelection; ActiveSelectedItem = selectedItem; if (MouseOver) { @@ -263,7 +263,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public override void CancelOpperation() { - IObject3D selectedItem = InteractionContext.Scene.RootSelectedItem; + IObject3D selectedItem = RootSelection; if (selectedItem != null && MouseDownOnControl) { @@ -306,7 +306,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private void InteractionLayer_AfterDraw(object sender, DrawEventArgs drawEvent) { - var selectedItem = InteractionContext.Scene.RootSelectedItem; + var selectedItem = RootSelection; if (selectedItem != null && lines.Count > 2) diff --git a/PartPreviewWindow/View3D/Gui3D/SelectionShadow.cs b/PartPreviewWindow/View3D/Gui3D/SelectionShadow.cs index 9ff6f7153..00e84898f 100644 --- a/PartPreviewWindow/View3D/Gui3D/SelectionShadow.cs +++ b/PartPreviewWindow/View3D/Gui3D/SelectionShadow.cs @@ -76,7 +76,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public override void DrawGlContent(DrawGlContentEventArgs e) { - var selectedItem = InteractionContext.Scene.RootSelectedItem; + var selectedItem = RootSelection; if (selectedItem != null && InteractionContext.Scene.ShowSelectionShadow) { diff --git a/PartPreviewWindow/View3D/InteractionVolume.cs b/PartPreviewWindow/View3D/InteractionVolume.cs index 77317ecea..62ed74dae 100644 --- a/PartPreviewWindow/View3D/InteractionVolume.cs +++ b/PartPreviewWindow/View3D/InteractionVolume.cs @@ -87,6 +87,16 @@ namespace MatterHackers.MeshVisualizer protected double SecondsToShowNumberEdit { get; private set; } = 4; protected Stopwatch timeSinceMouseUp { get; private set; } = new Stopwatch(); + public IObject3D RootSelection + { + get + { + var selectedItemRoot = InteractionContext.Scene.SelectedItemRoot; + var selectedItem = InteractionContext.Scene.SelectedItem; + return (selectedItemRoot == selectedItem) ? selectedItem : null; + } + } + public static void DrawMeasureLine(Graphics2D graphics2D, Vector2 lineStart, Vector2 lineEnd, Color color, LineArrows arrows) { graphics2D.Line(lineStart, lineEnd, Color.Black); diff --git a/PartPreviewWindow/View3D/SceneActions.cs b/PartPreviewWindow/View3D/SceneActions.cs index d133d4950..22bf05f2e 100644 --- a/PartPreviewWindow/View3D/SceneActions.cs +++ b/PartPreviewWindow/View3D/SceneActions.cs @@ -310,7 +310,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow var selectedItem = scene.SelectedItem; if (selectedItem != null) { - // Create and perform the delete operation + // Create and perform the delete operation var deleteOperation = new DeleteCommand(scene, selectedItem); // Store the operation for undo/redo