Replace duplicate ItemsToSubtract property with SelectedChildren
- Update to use new SelecteChildren as HashSet - Issue MatterHackers/MCCentral#5565 MatterControl extra slow with specific MCX, crashes on copy
This commit is contained in:
parent
3bd2eccf9c
commit
a7b8251807
8 changed files with 16 additions and 15 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit ad8d39a9d72bbf560a4b235a7979411b79327c2d
|
||||
Subproject commit f8d12266e143e85835e5940166fb7d13c67791b6
|
||||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue