From d59799282b0b850c464b20be4798c23897546f1e Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Tue, 17 Oct 2017 18:09:27 -0700 Subject: [PATCH] Filter visible objects set holes to invisible after applying to boolean --- PartPreviewWindow/View3D/DifferenceObject3D.cs | 6 ++++-- PartPreviewWindow/View3D/MeshViewerWidget.cs | 5 ++++- Submodules/agg-sharp | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/PartPreviewWindow/View3D/DifferenceObject3D.cs b/PartPreviewWindow/View3D/DifferenceObject3D.cs index 1a4c57f42..7faf86731 100644 --- a/PartPreviewWindow/View3D/DifferenceObject3D.cs +++ b/PartPreviewWindow/View3D/DifferenceObject3D.cs @@ -122,9 +122,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D if (removeObjects.Any() && keepObjects.Any()) { - foreach (var keep in keepObjects) + foreach (var remove in removeObjects) { - foreach (var remove in removeObjects) + foreach (var keep in keepObjects) { var transformedRemove = Mesh.Copy(remove.Mesh, CancellationToken.None); transformedRemove.Transform(remove.WorldMatrix()); @@ -138,6 +138,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D transformedKeep.Transform(inverse); keep.Mesh = transformedKeep; } + + remove.Visible = false; } } }); diff --git a/PartPreviewWindow/View3D/MeshViewerWidget.cs b/PartPreviewWindow/View3D/MeshViewerWidget.cs index 4982b2932..f63fd5fd9 100644 --- a/PartPreviewWindow/View3D/MeshViewerWidget.cs +++ b/PartPreviewWindow/View3D/MeshViewerWidget.cs @@ -498,7 +498,10 @@ namespace MatterHackers.MeshVisualizer List transparentMeshes = new List(); foreach (var object3D in scene.Children) { - DrawObject(object3D, transparentMeshes, false, e); + if (object3D.Visible) + { + DrawObject(object3D, transparentMeshes, false, e); + } } transparentMeshes.Sort(BackToFrontXY); diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 48c14ef06..0a95f55e7 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 48c14ef068f4ca06f2c5c60d9c4fd9baf282575a +Subproject commit 0a95f55e75773792ee7d9e5be709d73e6a615b35