Create and use local RootSelection property on UIVolumes

This commit is contained in:
John Lewin 2018-08-08 14:00:35 -07:00
parent 2e838d4a04
commit 32fe589fc3
4 changed files with 19 additions and 9 deletions

View file

@ -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)

View file

@ -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)
{

View file

@ -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);

View file

@ -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