From 7598c8bf9c884934fb6b5b35d065123f4e899386 Mon Sep 17 00:00:00 2001 From: LarsBrubaker Date: Tue, 12 Feb 2019 08:05:52 -0800 Subject: [PATCH] Getting subtract object to work as source --- .../ApplicationView/ApplicationController.cs | 6 +++++- MatterControlLib/DesignTools/PublicPropertyEditor.cs | 12 ++++++------ .../View3D/Actions/SubtractObject3D_2.cs | 8 ++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/MatterControlLib/ApplicationView/ApplicationController.cs b/MatterControlLib/ApplicationView/ApplicationController.cs index e237102fc..60895a1f0 100644 --- a/MatterControlLib/ApplicationView/ApplicationController.cs +++ b/MatterControlLib/ApplicationView/ApplicationController.cs @@ -691,7 +691,11 @@ namespace MatterHackers.MatterControl TitleResolver = () => "Subtract".Localize(), Action = (sceneContext) => new SubtractObject3D_2().WrapSelectedItemAndSelect(sceneContext.Scene), Icon = AggContext.StaticData.LoadIcon("subtract.png").SetPreMultiply(), - IsEnabled = (scene) => scene.SelectedItem is SelectionGroupObject3D, + IsEnabled = (scene) => + { + var selectedItem = scene.SelectedItem; + return selectedItem != null && selectedItem.VisibleMeshes().Count() > 1; + }, }, new SceneSelectionOperation() { diff --git a/MatterControlLib/DesignTools/PublicPropertyEditor.cs b/MatterControlLib/DesignTools/PublicPropertyEditor.cs index 42ed65b8e..15bc2852a 100644 --- a/MatterControlLib/DesignTools/PublicPropertyEditor.cs +++ b/MatterControlLib/DesignTools/PublicPropertyEditor.cs @@ -664,7 +664,7 @@ namespace MatterHackers.MatterControl.DesignTools { var radioButton = new RadioButton(string.IsNullOrWhiteSpace(child.Name) ? $"{itemIndex}" : $"{child.Name}") { - Checked = childSelector.Contains(child.ID), + Checked = childSelector.Contains(child.Name), TextColor = theme.TextColor }; radioSiblings.Add(radioButton); @@ -675,7 +675,7 @@ namespace MatterHackers.MatterControl.DesignTools { selectWidget = new CheckBox(string.IsNullOrWhiteSpace(child.Name) ? $"{itemIndex}" : $"{child.Name}") { - Checked = childSelector.Contains(child.ID), + Checked = childSelector.Contains(child.Name), TextColor = theme.TextColor }; } @@ -691,16 +691,16 @@ namespace MatterHackers.MatterControl.DesignTools { if (checkBox.Checked) { - if (!childSelector.Contains(objectChecks[checkbox].ID)) + if (!childSelector.Contains(objectChecks[checkbox].Name)) { - childSelector.Add(objectChecks[checkbox].ID); + childSelector.Add(objectChecks[checkbox].Name); } } else { - if (childSelector.Contains(objectChecks[checkbox].ID)) + if (childSelector.Contains(objectChecks[checkbox].Name)) { - childSelector.Remove(objectChecks[checkbox].ID); + childSelector.Remove(objectChecks[checkbox].Name); } } diff --git a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D_2.cs b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D_2.cs index 8731b14a8..d2b4d9418 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D_2.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D_2.cs @@ -122,9 +122,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D } var removeObjects = this.SourceContainer.VisibleMeshes() - .Where((i) => SelectedChildren.Contains(i.ID)).ToList(); + .Where((i) => SelectedChildren.Contains(i.Name)).ToList(); var keepObjects = this.SourceContainer.VisibleMeshes() - .Where((i) => !SelectedChildren.Contains(i.ID)).ToList(); + .Where((i) => !SelectedChildren.Contains(i.Name)).ToList(); if (removeObjects.Any() && keepObjects.Any()) @@ -148,8 +148,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D reporter?.Report(progressStatus); var resultsMesh = BooleanProcessing.Do(keep.obj3D.Mesh, keep.matrix, remove.obj3D.Mesh, remove.matrix, 1, reporter, amountPerOperation, percentCompleted, progressStatus, cancellationToken); - var inverse = keep.matrix.Inverted; - resultsMesh.Transform(inverse); + //var inverse = keep.matrix.Inverted; + //resultsMesh.Transform(inverse); var resultsItem = new Object3D() {