diff --git a/MatterControlLib/DesignTools/Operations/AlignObject3D.cs b/MatterControlLib/DesignTools/Operations/AlignObject3D.cs index 6d322c381..121107dc1 100644 --- a/MatterControlLib/DesignTools/Operations/AlignObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/AlignObject3D.cs @@ -234,7 +234,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations { if (SelectedChild.Count > 0) { - return this.Children.Where(c => c.ID == SelectedChild[0]).FirstOrDefault(); + return this.Children.Where(c => c.ID == SelectedChild.First()).FirstOrDefault(); } return this.Children.FirstOrDefault(); diff --git a/MatterControlLib/DesignTools/Operations/Object3DExtensions.cs b/MatterControlLib/DesignTools/Operations/Object3DExtensions.cs index 7de7029d3..de5b65d0a 100644 --- a/MatterControlLib/DesignTools/Operations/Object3DExtensions.cs +++ b/MatterControlLib/DesignTools/Operations/Object3DExtensions.cs @@ -270,7 +270,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations subtract.Children.Add(a.Clone()); var bClone = b.Clone(); subtract.Children.Add(bClone); - subtract.ItemsToSubtract.Add(bClone.ID); + subtract.SelectedChildren.Add(bClone.ID); subtract.Subtract(); diff --git a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D_2.cs b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D_2.cs index f9d263402..41a6c1560 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D_2.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D_2.cs @@ -176,7 +176,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D { SubtractAndReplace(cancellationToken, reporter); var newComputedChildren = new SelectedChildren(); - newComputedChildren.AddRange(SelectedChildren); + + foreach (var id in SelectedChildren) + { + newComputedChildren.Add(id); + } + ComputedChildren = newComputedChildren; } catch diff --git a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs index 7999bd9b9..dfebce19a 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs @@ -53,9 +53,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D Name = "Subtract"; } - public SelectedChildren ItemsToSubtract { get; set; } = new SelectedChildren(); - - public SelectedChildren SelectedChildren => ItemsToSubtract; + public SelectedChildren SelectedChildren { get; set; } = new SelectedChildren(); public override async void OnInvalidate(InvalidateArgs invalidateType) { @@ -115,13 +113,13 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D bool ItemInSubtractList(IObject3D item) { - if (ItemsToSubtract.Contains(item.ID)) + if (SelectedChildren.Contains(item.ID)) { return true; } // check if the wrapped item is in the subtract list - if (item.Children.Count > 0 && ItemsToSubtract.Contains(item.Children.First().ID)) + if (item.Children.Count > 0 && SelectedChildren.Contains(item.Children.First().ID)) { return true; } diff --git a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D_2.cs b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D_2.cs index 3f427c478..ca2842cf5 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D_2.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D_2.cs @@ -63,8 +63,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D var parentOfSubtractTargets = this.SourceContainer.DescendantsAndSelfMultipleChildrenFirstOrSelf(); var removeObjects = parentOfSubtractTargets.Children - .Where((i) => SelectedChildren - .Contains(i.ID)) + .Where(i => SelectedChildren.Contains(i.ID)) .SelectMany(c => c.VisibleMeshes()) .ToList(); @@ -74,8 +73,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D } var keepItems = parentOfSubtractTargets.Children - .Where((i) => !SelectedChildren - .Contains(i.ID)) + .Where(i => !SelectedChildren.Contains(i.ID)) .ToList(); foreach (var keepItem in keepItems) diff --git a/MatterControlLib/SlicerConfiguration/UIFields/ChildrenSelectorListField.cs b/MatterControlLib/SlicerConfiguration/UIFields/ChildrenSelectorListField.cs index cdb524efa..bc264ba6a 100644 --- a/MatterControlLib/SlicerConfiguration/UIFields/ChildrenSelectorListField.cs +++ b/MatterControlLib/SlicerConfiguration/UIFields/ChildrenSelectorListField.cs @@ -60,7 +60,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration names = item.Children.Select(child => (child.ID, child.Name)).ToList(); if (item.SelectedChild.Count == 1) { - selectedID = item.SelectedChild[0]; + selectedID = item.SelectedChild.First(); } } diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index ad8d39a9d..f8d12266e 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit ad8d39a9d72bbf560a4b235a7979411b79327c2d +Subproject commit f8d12266e143e85835e5940166fb7d13c67791b6 diff --git a/Tests/MatterControl.Tests/MatterControl/InteractiveSceneTests.cs b/Tests/MatterControl.Tests/MatterControl/InteractiveSceneTests.cs index 9e1c7f6e8..7e4269688 100644 --- a/Tests/MatterControl.Tests/MatterControl/InteractiveSceneTests.cs +++ b/Tests/MatterControl.Tests/MatterControl/InteractiveSceneTests.cs @@ -276,7 +276,7 @@ namespace MatterControl.Tests.MatterControl var subtract = new SubtractObject3D(); subtract.Children.Add(cubeA); subtract.Children.Add(offsetCubeB); - subtract.ItemsToSubtract.Add(offsetCubeB.ID); + subtract.SelectedChildren.Add(offsetCubeB.ID); root.Children.Add(subtract); subtract.Subtract();