diff --git a/PartPreviewWindow/PlatingHelper.cs b/PartPreviewWindow/PlatingHelper.cs
index 01705c93e..62a42ea20 100644
--- a/PartPreviewWindow/PlatingHelper.cs
+++ b/PartPreviewWindow/PlatingHelper.cs
@@ -149,7 +149,7 @@ namespace MatterHackers.MatterControl
public static void PlaceOnBed(IObject3D object3D)
{
- AxisAlignedBoundingBox bounds = object3D.GetAxisAlignedBoundingBox(Matrix4X4.Identity, true);
+ AxisAlignedBoundingBox bounds = object3D.GetAxisAlignedBoundingBox(Matrix4X4.Identity);
Vector3 boundsCenter = (bounds.maxXYZ + bounds.minXYZ) / 2;
object3D.Matrix *= Matrix4X4.CreateTranslation(new Vector3(0, 0, -boundsCenter.Z + bounds.ZSize / 2));
diff --git a/PartPreviewWindow/View3D/Actions/CombineEditor.cs b/PartPreviewWindow/View3D/Actions/CombineEditor.cs
index f76aaee2e..3ec95c3dc 100644
--- a/PartPreviewWindow/View3D/Actions/CombineEditor.cs
+++ b/PartPreviewWindow/View3D/Actions/CombineEditor.cs
@@ -58,7 +58,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
var mainContainer = new FlowLayoutWidget(FlowDirection.TopToBottom);
if (group is MeshWrapperOperation operationNode
- && operationNode.Children.All(c => c.OutputType != PrintOutputTypes.Hole))
+ && operationNode.Descendants().Where((obj) => obj.OwnerID == group.ID).All(c => c.OutputType != PrintOutputTypes.Hole))
{
bool first = true;
// set all but one mesh to look like holes
diff --git a/PartPreviewWindow/View3D/Actions/IntersectionEditor.cs b/PartPreviewWindow/View3D/Actions/IntersectionEditor.cs
index 81fadc58e..11514e392 100644
--- a/PartPreviewWindow/View3D/Actions/IntersectionEditor.cs
+++ b/PartPreviewWindow/View3D/Actions/IntersectionEditor.cs
@@ -58,7 +58,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
var mainContainer = new FlowLayoutWidget(FlowDirection.TopToBottom);
if (group is MeshWrapperOperation operationNode
- && operationNode.Children.All(c => c.OutputType != PrintOutputTypes.Hole))
+ && operationNode.Descendants().Where((obj) => obj.OwnerID == group.ID).All(c => c.OutputType != PrintOutputTypes.Hole))
{
bool first = true;
// set all but one mesh to look like holes
diff --git a/PartPreviewWindow/View3D/MeshViewerWidget.cs b/PartPreviewWindow/View3D/MeshViewerWidget.cs
index a529e9ca2..b2d75a41f 100644
--- a/PartPreviewWindow/View3D/MeshViewerWidget.cs
+++ b/PartPreviewWindow/View3D/MeshViewerWidget.cs
@@ -484,15 +484,16 @@ namespace MatterHackers.MeshVisualizer
bool isSelected = parentSelected ||
scene.HasSelection && (object3D == scene.SelectedItem || scene.SelectedItem.Children.Contains(object3D));
- if (isSelected)
+ if (isSelected && scene.DrawSelection)
{
var totalVertices = 0;
+ int maxVerticesToRenderOutline = 1000;
foreach (var visibleMesh in object3D.VisibleMeshes())
{
totalVertices += visibleMesh.Mesh.Vertices.Count;
- if (totalVertices > 1000)
+ if (totalVertices > maxVerticesToRenderOutline)
{
break;
}
@@ -517,8 +518,7 @@ namespace MatterHackers.MeshVisualizer
Invalidate();
}
- bool tooBigForComplexSelection = totalVertices > 1000;
- if (tooBigForComplexSelection
+ if (totalVertices > maxVerticesToRenderOutline
&& scene.DebugItem == null)
{
GLHelper.PrepareFor3DLineRender(true);
diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp
index 2e011242b..d0db17201 160000
--- a/Submodules/agg-sharp
+++ b/Submodules/agg-sharp
@@ -1 +1 @@
-Subproject commit 2e011242b083bf6ebdc723dc5768a85ac6b8227d
+Subproject commit d0db172015d632bda42184e18a63158c94b7dd97
diff --git a/TextCreator/app.config b/TextCreator/app.config
index a176ba41b..8d60bfa13 100644
--- a/TextCreator/app.config
+++ b/TextCreator/app.config
@@ -1,11 +1,19 @@
-
+
-
-
+
+
+
+
+
+
+
+
+
+
-
+