diff --git a/MatterControlLib/ApplicationView/ApplicationController.cs b/MatterControlLib/ApplicationView/ApplicationController.cs index 3b987b2e0..9a64fe543 100644 --- a/MatterControlLib/ApplicationView/ApplicationController.cs +++ b/MatterControlLib/ApplicationView/ApplicationController.cs @@ -1129,7 +1129,7 @@ namespace MatterHackers.MatterControl scene.UndoBuffer.AddAndDo(new ReplaceCommand(new[] { sceneItem }, new[] { path })); scene.SelectedItem = null; scene.SelectedItem = path; - path.Invalidate(new InvalidateArgs(path, InvalidateType.Properties)); + path.Invalidate(InvalidateType.Properties); } return Task.CompletedTask; @@ -1245,7 +1245,7 @@ namespace MatterHackers.MatterControl scene.SelectedItem = null; scene.SelectedItem = component; // Invalidate image to kick off rebuild of ImageConverter stack - imageObject.Invalidate(new InvalidateArgs(imageObject, InvalidateType.Image)); + imageObject.Invalidate(InvalidateType.Image); return Task.CompletedTask; }, @@ -1369,7 +1369,7 @@ namespace MatterHackers.MatterControl scene.UndoBuffer.AddAndDo(new ReplaceCommand(new[] { sceneItem }, new[] { extrude })); scene.SelectedItem = null; scene.SelectedItem = extrude; - extrude.Invalidate(new InvalidateArgs(extrude, InvalidateType.Properties)); + extrude.Invalidate(InvalidateType.Properties); } return Task.CompletedTask; @@ -1397,7 +1397,7 @@ namespace MatterHackers.MatterControl scene.UndoBuffer.AddAndDo(new ReplaceCommand(new[] { sceneItem }, new[] { smoothPath })); scene.SelectedItem = null; scene.SelectedItem = smoothPath; - smoothPath.Invalidate(new InvalidateArgs(smoothPath, InvalidateType.Properties)); + smoothPath.Invalidate(InvalidateType.Properties); } return Task.CompletedTask; @@ -1425,7 +1425,7 @@ namespace MatterHackers.MatterControl scene.UndoBuffer.AddAndDo(new ReplaceCommand(new[] { sceneItem }, new[] { inflatePath })); scene.SelectedItem = null; scene.SelectedItem = inflatePath; - inflatePath.Invalidate(new InvalidateArgs(inflatePath, InvalidateType.Properties)); + inflatePath.Invalidate(InvalidateType.Properties); } return Task.CompletedTask; @@ -1451,7 +1451,7 @@ namespace MatterHackers.MatterControl }; newChild.Matrix = Matrix4X4.Identity; baseMesh.Children.Add(newChild); - baseMesh.Invalidate(new InvalidateArgs(baseMesh, InvalidateType.Properties)); + baseMesh.Invalidate(InvalidateType.Properties); scene.UndoBuffer.AddAndDo( new ReplaceCommand( diff --git a/MatterControlLib/DesignTools/Braille/BrailleCardObject3D.cs b/MatterControlLib/DesignTools/Braille/BrailleCardObject3D.cs index e45c36e8a..da3646e66 100644 --- a/MatterControlLib/DesignTools/Braille/BrailleCardObject3D.cs +++ b/MatterControlLib/DesignTools/Braille/BrailleCardObject3D.cs @@ -96,7 +96,7 @@ namespace MatterHackers.MatterControl.DesignTools Height = BaseHeight }; - textObject.Invalidate(new InvalidateArgs(textObject, InvalidateType.Properties)); + textObject.Invalidate(InvalidateType.Properties); IObject3D letterObject = new RotateObject3D(textObject, MathHelper.Tau / 4); letterObject = new AlignObject3D(letterObject, FaceAlign.Bottom | FaceAlign.Front, brailleLetter, FaceAlign.Top | FaceAlign.Front, 0, 0, 3.5); letterObject = new SetCenterObject3D(letterObject, brailleLetter.GetCenter(), true, false, false); @@ -129,7 +129,7 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } } } \ No newline at end of file diff --git a/MatterControlLib/DesignTools/Braille/BrailleObject3D.cs b/MatterControlLib/DesignTools/Braille/BrailleObject3D.cs index 840aa517b..8b11e0816 100644 --- a/MatterControlLib/DesignTools/Braille/BrailleObject3D.cs +++ b/MatterControlLib/DesignTools/Braille/BrailleObject3D.cs @@ -267,7 +267,7 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } } } \ No newline at end of file diff --git a/MatterControlLib/DesignTools/LithophaneObject3D.cs b/MatterControlLib/DesignTools/LithophaneObject3D.cs index cf2c78352..021df735b 100644 --- a/MatterControlLib/DesignTools/LithophaneObject3D.cs +++ b/MatterControlLib/DesignTools/LithophaneObject3D.cs @@ -114,7 +114,7 @@ namespace MatterHackers.MatterControl.Plugins.Lithophane // Apply offset this.Matrix *= Matrix4X4.CreateTranslation(-this.ImageOffset); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); diff --git a/MatterControlLib/DesignTools/Obsolete/CombineObject3D.cs b/MatterControlLib/DesignTools/Obsolete/CombineObject3D.cs index 72844eb34..b099547f0 100644 --- a/MatterControlLib/DesignTools/Obsolete/CombineObject3D.cs +++ b/MatterControlLib/DesignTools/Obsolete/CombineObject3D.cs @@ -96,7 +96,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D } rebuildLocks.Dispose(); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Obsolete/CurveObject3D.cs b/MatterControlLib/DesignTools/Obsolete/CurveObject3D.cs index 54da45291..7abb0f033 100644 --- a/MatterControlLib/DesignTools/Obsolete/CurveObject3D.cs +++ b/MatterControlLib/DesignTools/Obsolete/CurveObject3D.cs @@ -274,10 +274,10 @@ namespace MatterHackers.MatterControl.DesignTools Matrix = currentMatrix; } - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); if (propertyUpdated) { - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } } } diff --git a/MatterControlLib/DesignTools/Obsolete/FitToBoundsObject3D.cs b/MatterControlLib/DesignTools/Obsolete/FitToBoundsObject3D.cs index 97bc1a4ce..0e9075f2a 100644 --- a/MatterControlLib/DesignTools/Obsolete/FitToBoundsObject3D.cs +++ b/MatterControlLib/DesignTools/Obsolete/FitToBoundsObject3D.cs @@ -101,7 +101,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations list.AddRange(ScaleItem.Children); }); } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public override void Remove(UndoBuffer undoBuffer) @@ -122,7 +122,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations }); } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public override void OnInvalidate(InvalidateArgs invalidateType) @@ -180,7 +180,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations } } - base.Invalidate(new InvalidateArgs(this, InvalidateType.Matrix)); + Invalidate(InvalidateType.Matrix); } public override AxisAlignedBoundingBox GetAxisAlignedBoundingBox(Matrix4X4 matrix) diff --git a/MatterControlLib/DesignTools/Obsolete/IntersectionObject3D.cs b/MatterControlLib/DesignTools/Obsolete/IntersectionObject3D.cs index 27ac6db4c..fa4909a59 100644 --- a/MatterControlLib/DesignTools/Obsolete/IntersectionObject3D.cs +++ b/MatterControlLib/DesignTools/Obsolete/IntersectionObject3D.cs @@ -90,7 +90,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D } rebuildLocks.Dispose(); - base.Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); diff --git a/MatterControlLib/DesignTools/Obsolete/MirrorObject3D.cs b/MatterControlLib/DesignTools/Obsolete/MirrorObject3D.cs index 1519adf99..9b07f3beb 100644 --- a/MatterControlLib/DesignTools/Obsolete/MirrorObject3D.cs +++ b/MatterControlLib/DesignTools/Obsolete/MirrorObject3D.cs @@ -93,7 +93,7 @@ namespace MatterHackers.MatterControl.DesignTools this.Matrix = oldMatrix; } - base.Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; } diff --git a/MatterControlLib/DesignTools/Obsolete/PinchObject3D.cs b/MatterControlLib/DesignTools/Obsolete/PinchObject3D.cs index 7761a8a41..f17fb6349 100644 --- a/MatterControlLib/DesignTools/Obsolete/PinchObject3D.cs +++ b/MatterControlLib/DesignTools/Obsolete/PinchObject3D.cs @@ -124,7 +124,7 @@ namespace MatterHackers.MatterControl.DesignTools Matrix = currentMatrix; } - base.Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } } } \ No newline at end of file diff --git a/MatterControlLib/DesignTools/Obsolete/RotateObject3D.cs b/MatterControlLib/DesignTools/Obsolete/RotateObject3D.cs index 4e78bb1ec..aa03c8fe6 100644 --- a/MatterControlLib/DesignTools/Obsolete/RotateObject3D.cs +++ b/MatterControlLib/DesignTools/Obsolete/RotateObject3D.cs @@ -97,12 +97,12 @@ namespace MatterHackers.MatterControl.DesignTools.Operations } } - Invalidate(new InvalidateArgs(this, InvalidateType.Matrix)); + Invalidate(InvalidateType.Matrix); return Task.CompletedTask; } - public override void OnInvalidate(InvalidateArgs invalidateType) + public override async void OnInvalidate(InvalidateArgs invalidateType) { if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children) || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) @@ -110,14 +110,12 @@ namespace MatterHackers.MatterControl.DesignTools.Operations && invalidateType.Source != this && !RebuildLocked) { - Rebuild(); - invalidateType = new InvalidateArgs(this, InvalidateType.Matrix); + await Rebuild(); } else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this) { - Rebuild(); - invalidateType = new InvalidateArgs(this, InvalidateType.Matrix); + await Rebuild(); } base.OnInvalidate(invalidateType); diff --git a/MatterControlLib/DesignTools/Operations/AlignObject3D.cs b/MatterControlLib/DesignTools/Operations/AlignObject3D.cs index cd28a3325..fdb6429be 100644 --- a/MatterControlLib/DesignTools/Operations/AlignObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/AlignObject3D.cs @@ -443,7 +443,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations })); } - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Matrix)); + Invalidate(InvalidateType.Matrix); return Task.CompletedTask; } @@ -466,7 +466,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations base.Remove(undoBuffer); } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public void UpdateControls(PublicPropertyChange change) diff --git a/MatterControlLib/DesignTools/Operations/ArrayAdvancedObject3D.cs b/MatterControlLib/DesignTools/Operations/ArrayAdvancedObject3D.cs index 1ca63bade..b5350f619 100644 --- a/MatterControlLib/DesignTools/Operations/ArrayAdvancedObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/ArrayAdvancedObject3D.cs @@ -100,7 +100,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations }); SourceContainer.Visible = false; rebuildLock.Dispose(); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Operations/ArrayLinearObject3D.cs b/MatterControlLib/DesignTools/Operations/ArrayLinearObject3D.cs index a4bae9d05..932d6bb2f 100644 --- a/MatterControlLib/DesignTools/Operations/ArrayLinearObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/ArrayLinearObject3D.cs @@ -84,7 +84,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations SourceContainer.Visible = false; rebuildLock.Dispose(); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Operations/ArrayRadialObject3D.cs b/MatterControlLib/DesignTools/Operations/ArrayRadialObject3D.cs index 928504754..fb9875ccb 100644 --- a/MatterControlLib/DesignTools/Operations/ArrayRadialObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/ArrayRadialObject3D.cs @@ -127,7 +127,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations }); SourceContainer.Visible = false; rebuildLock.Dispose(); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Operations/CurveObject3D_2.cs b/MatterControlLib/DesignTools/Operations/CurveObject3D_2.cs index 162f8807b..78a6c2abc 100644 --- a/MatterControlLib/DesignTools/Operations/CurveObject3D_2.cs +++ b/MatterControlLib/DesignTools/Operations/CurveObject3D_2.cs @@ -182,7 +182,7 @@ namespace MatterHackers.MatterControl.DesignTools this.Translate(new Vector3(rotationOffset)); SourceContainer.Visible = false; rebuildLocks.Dispose(); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Operations/FitToBoundsObject3D_2.cs b/MatterControlLib/DesignTools/Operations/FitToBoundsObject3D_2.cs index d4ea087b1..cb1ad24fd 100644 --- a/MatterControlLib/DesignTools/Operations/FitToBoundsObject3D_2.cs +++ b/MatterControlLib/DesignTools/Operations/FitToBoundsObject3D_2.cs @@ -84,6 +84,10 @@ namespace MatterHackers.MatterControl.DesignTools.Operations fitToBounds.boundsSize.Y = aabb.YSize; fitToBounds.boundsSize.Z = aabb.ZSize; fitToBounds.Rebuild(); + + var newAabbb = fitToBounds.GetAxisAlignedBoundingBox(); + fitToBounds.Translate(aabb.Center - newAabbb.Center); + PlatingHelper.PlaceMeshAtHeight(fitToBounds, aabb.MinXYZ.Z); } return fitToBounds; @@ -187,7 +191,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations } } - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Matrix)); + Invalidate(InvalidateType.Matrix); return Task.CompletedTask; } diff --git a/MatterControlLib/DesignTools/Operations/Image/ImageToPathObject3D.cs b/MatterControlLib/DesignTools/Operations/Image/ImageToPathObject3D.cs index a8d5228c4..34525a3d2 100644 --- a/MatterControlLib/DesignTools/Operations/Image/ImageToPathObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/Image/ImageToPathObject3D.cs @@ -308,22 +308,20 @@ namespace MatterHackers.MatterControl.DesignTools public override async void OnInvalidate(InvalidateArgs invalidateType) { - this.DebugDepth("Invalidate"); - if (invalidateType.InvalidateType.HasFlag(InvalidateType.Image) && invalidateType.Source != this && !RebuildLocked) { await Rebuild(); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Path)); } else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this) { UpdateHistogramDisplay(); await Rebuild(); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Path)); } + + base.OnInvalidate(invalidateType); } private Color GetRGBA(byte[] buffer, int offset) @@ -384,11 +382,11 @@ namespace MatterHackers.MatterControl.DesignTools if (propertyUpdated) { UpdateHistogramDisplay(); - Invalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } rebuildLock.Dispose(); - Invalidate(new InvalidateArgs(this, InvalidateType.Path)); + Invalidate(InvalidateType.Path); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Operations/Image/LinearExtrudeObject3D.cs b/MatterControlLib/DesignTools/Operations/Image/LinearExtrudeObject3D.cs index 6e8aebd3a..1e1860070 100644 --- a/MatterControlLib/DesignTools/Operations/Image/LinearExtrudeObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/Image/LinearExtrudeObject3D.cs @@ -80,7 +80,7 @@ namespace MatterHackers.MatterControl.DesignTools undoBuffer.AddAndDo(new ReplaceCommand(new[] { this }, new[] { meshOnlyItem })); } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public LinearExtrudeObject3D() @@ -90,8 +90,6 @@ namespace MatterHackers.MatterControl.DesignTools public override async void OnInvalidate(InvalidateArgs eventArgs) { - this.DebugDepth("Invalidate"); - if ((eventArgs.InvalidateType.HasFlag(InvalidateType.Path) || eventArgs.InvalidateType.HasFlag(InvalidateType.Children)) && eventArgs.Source != this @@ -129,7 +127,7 @@ namespace MatterHackers.MatterControl.DesignTools } rebuildLock.Dispose(); - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Operations/MirrorObject3D_2.cs b/MatterControlLib/DesignTools/Operations/MirrorObject3D_2.cs index e88631df2..8f1b5d81e 100644 --- a/MatterControlLib/DesignTools/Operations/MirrorObject3D_2.cs +++ b/MatterControlLib/DesignTools/Operations/MirrorObject3D_2.cs @@ -106,7 +106,7 @@ namespace MatterHackers.MatterControl.DesignTools this.Matrix = oldMatrix; SourceContainer.Visible = false; rebuildLock.Dispose(); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Operations/OperationSourceObject3D.cs b/MatterControlLib/DesignTools/Operations/OperationSourceObject3D.cs index 8b785d0b9..79c4053dc 100644 --- a/MatterControlLib/DesignTools/Operations/OperationSourceObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/OperationSourceObject3D.cs @@ -130,7 +130,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations } } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public override async void OnInvalidate(InvalidateArgs invalidateType) @@ -188,7 +188,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations } } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public void RemoveAllButSource() @@ -239,7 +239,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations // and select this scene.SelectedItem = this; - this.Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + this.Invalidate(InvalidateType.Children); } } diff --git a/MatterControlLib/DesignTools/Operations/Path/InflatePathObject3D.cs b/MatterControlLib/DesignTools/Operations/Path/InflatePathObject3D.cs index aa0be4586..cb8261e79 100644 --- a/MatterControlLib/DesignTools/Operations/Path/InflatePathObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/Path/InflatePathObject3D.cs @@ -85,7 +85,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations InsetPath(); } - Invalidate(new InvalidateArgs(this, InvalidateType.Path)); + Invalidate(InvalidateType.Path); } private void InsetPath() diff --git a/MatterControlLib/DesignTools/Operations/Path/SmoothPathObject3D.cs b/MatterControlLib/DesignTools/Operations/Path/SmoothPathObject3D.cs index c9b4d9b1b..bd616e8e9 100644 --- a/MatterControlLib/DesignTools/Operations/Path/SmoothPathObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/Path/SmoothPathObject3D.cs @@ -59,8 +59,6 @@ namespace MatterHackers.MatterControl.DesignTools.Operations public override async void OnInvalidate(InvalidateArgs invalidateType) { - this.DebugDepth("Invalidate"); - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children) || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) || invalidateType.InvalidateType.HasFlag(InvalidateType.Path)) @@ -93,7 +91,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations DoSmoothing((long)(SmoothDistance * 1000), Iterations); rebuildLock.Dispose(); - Invalidate(new InvalidateArgs(this, InvalidateType.Path)); + Invalidate(InvalidateType.Path); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Operations/RotateObject3D_2.cs b/MatterControlLib/DesignTools/Operations/RotateObject3D_2.cs index 207d604d0..ac6ff900f 100644 --- a/MatterControlLib/DesignTools/Operations/RotateObject3D_2.cs +++ b/MatterControlLib/DesignTools/Operations/RotateObject3D_2.cs @@ -129,7 +129,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations TransformItem.Matrix = RotationMatrix; } - Invalidate(new InvalidateArgs(this, InvalidateType.Matrix)); + Invalidate(InvalidateType.Matrix); return Task.CompletedTask; } diff --git a/MatterControlLib/DesignTools/Operations/ScaleObject3D.cs b/MatterControlLib/DesignTools/Operations/ScaleObject3D.cs index 7537f4f40..7e2245f04 100644 --- a/MatterControlLib/DesignTools/Operations/ScaleObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/ScaleObject3D.cs @@ -213,7 +213,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations TransformItem.Matrix *= Matrix4X4.CreateTranslation(ScaleAbout); } - Invalidate(new InvalidateArgs(this, InvalidateType.Matrix)); + Invalidate(InvalidateType.Matrix); return Task.CompletedTask; } @@ -259,7 +259,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations else if(change.Changed == nameof(UsePercentage)) { // make sure we update the controls on screen to reflect the different data type - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } else if (change.Changed == nameof(MaitainProportions)) { diff --git a/MatterControlLib/DesignTools/Operations/TransformWrapperObject3D.cs b/MatterControlLib/DesignTools/Operations/TransformWrapperObject3D.cs index c0db99e69..714975c9b 100644 --- a/MatterControlLib/DesignTools/Operations/TransformWrapperObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/TransformWrapperObject3D.cs @@ -94,7 +94,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations list.AddRange(TransformItem.Children); }); } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public override void Remove(UndoBuffer undoBuffer) @@ -115,7 +115,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations }); } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public virtual void WrapItem(IObject3D item, UndoBuffer undoBuffer = null) diff --git a/MatterControlLib/DesignTools/Operations/TranslateObject3D.cs b/MatterControlLib/DesignTools/Operations/TranslateObject3D.cs index 041aed0ed..2d7bd2dbc 100644 --- a/MatterControlLib/DesignTools/Operations/TranslateObject3D.cs +++ b/MatterControlLib/DesignTools/Operations/TranslateObject3D.cs @@ -107,7 +107,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations TransformItem.Matrix = Matrix4X4.CreateTranslation(Translation); } - Invalidate(new InvalidateArgs(this, InvalidateType.Matrix)); + Invalidate(InvalidateType.Matrix); return Task.CompletedTask; } } diff --git a/MatterControlLib/DesignTools/Primitives/BaseObject3D.cs b/MatterControlLib/DesignTools/Primitives/BaseObject3D.cs index 30821d976..5a55f6382 100644 --- a/MatterControlLib/DesignTools/Primitives/BaseObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/BaseObject3D.cs @@ -167,7 +167,7 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); } private static Polygon GetBoundingPolygon(Polygons basePolygons) diff --git a/MatterControlLib/DesignTools/Primitives/ComponentObject3D.cs b/MatterControlLib/DesignTools/Primitives/ComponentObject3D.cs index af183751f..d92c31ba1 100644 --- a/MatterControlLib/DesignTools/Primitives/ComponentObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/ComponentObject3D.cs @@ -96,7 +96,7 @@ namespace MatterHackers.MatterControl.DesignTools undoBuffer.AddAndDo(new ReplaceCommand(new[] { this }, newChildren)); } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public override void Remove(UndoBuffer undoBuffer) diff --git a/MatterControlLib/DesignTools/Primitives/ConeObject3D.cs b/MatterControlLib/DesignTools/Primitives/ConeObject3D.cs index cdbfcb900..bdddd425d 100644 --- a/MatterControlLib/DesignTools/Primitives/ConeObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/ConeObject3D.cs @@ -96,10 +96,10 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); if (changed) { - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } } } diff --git a/MatterControlLib/DesignTools/Primitives/CylinderObject3D.cs b/MatterControlLib/DesignTools/Primitives/CylinderObject3D.cs index 74cad031a..442eba4f3 100644 --- a/MatterControlLib/DesignTools/Primitives/CylinderObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/CylinderObject3D.cs @@ -173,10 +173,10 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); if (changed) { - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } } diff --git a/MatterControlLib/DesignTools/Primitives/HalfCylinderObject3D.cs b/MatterControlLib/DesignTools/Primitives/HalfCylinderObject3D.cs index 2cac86abb..126364352 100644 --- a/MatterControlLib/DesignTools/Primitives/HalfCylinderObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/HalfCylinderObject3D.cs @@ -100,10 +100,10 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); if (changed) { - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } } } diff --git a/MatterControlLib/DesignTools/Primitives/HalfSphereObject3D.cs b/MatterControlLib/DesignTools/Primitives/HalfSphereObject3D.cs index 2538ac61b..47f1e1833 100644 --- a/MatterControlLib/DesignTools/Primitives/HalfSphereObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/HalfSphereObject3D.cs @@ -110,10 +110,10 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); if (changed) { - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } } } diff --git a/MatterControlLib/DesignTools/Primitives/HalfWedgeObject3D.cs b/MatterControlLib/DesignTools/Primitives/HalfWedgeObject3D.cs index d1c419257..cefc4c2ce 100644 --- a/MatterControlLib/DesignTools/Primitives/HalfWedgeObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/HalfWedgeObject3D.cs @@ -93,7 +93,7 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); } } } \ No newline at end of file diff --git a/MatterControlLib/DesignTools/Primitives/ImageObject3D.cs b/MatterControlLib/DesignTools/Primitives/ImageObject3D.cs index 91ab8917f..83a01868a 100644 --- a/MatterControlLib/DesignTools/Primitives/ImageObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/ImageObject3D.cs @@ -101,7 +101,7 @@ namespace MatterHackers.MatterControl.DesignTools } // send the invalidate on image change - this.OnInvalidate(new InvalidateArgs(this, InvalidateType.Image)); + Invalidate(InvalidateType.Image); } return _image; @@ -118,7 +118,7 @@ namespace MatterHackers.MatterControl.DesignTools _invert = value; _image = null; - this.OnInvalidate(new InvalidateArgs(this, InvalidateType.Image)); + Invalidate(InvalidateType.Image); } } } diff --git a/MatterControlLib/DesignTools/Primitives/PyramidObject3D.cs b/MatterControlLib/DesignTools/Primitives/PyramidObject3D.cs index bf0b7b087..cf914ea43 100644 --- a/MatterControlLib/DesignTools/Primitives/PyramidObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/PyramidObject3D.cs @@ -93,7 +93,7 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); } } } \ No newline at end of file diff --git a/MatterControlLib/DesignTools/Primitives/RingObject3D.cs b/MatterControlLib/DesignTools/Primitives/RingObject3D.cs index 6b659aecc..c4f891db9 100644 --- a/MatterControlLib/DesignTools/Primitives/RingObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/RingObject3D.cs @@ -128,10 +128,10 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); if (changed) { - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } } diff --git a/MatterControlLib/DesignTools/Primitives/SphereObject3D.cs b/MatterControlLib/DesignTools/Primitives/SphereObject3D.cs index 8a8011f32..f3db19bbb 100644 --- a/MatterControlLib/DesignTools/Primitives/SphereObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/SphereObject3D.cs @@ -130,11 +130,11 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); if (changed) { - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } } diff --git a/MatterControlLib/DesignTools/Primitives/TextObject3D.cs b/MatterControlLib/DesignTools/Primitives/TextObject3D.cs index 3ea880635..7f7e6a75d 100644 --- a/MatterControlLib/DesignTools/Primitives/TextObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/TextObject3D.cs @@ -43,6 +43,7 @@ using MatterHackers.VectorMath; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System.Threading.Tasks; +using System; namespace MatterHackers.MatterControl.DesignTools { @@ -54,11 +55,12 @@ namespace MatterHackers.MatterControl.DesignTools Color = Operations.Object3DExtensions.PrimitiveColors["Text"]; } - public static TextObject3D Create() + public static async Task Create() { var item = new TextObject3D(); - item.Invalidate(new InvalidateArgs(null, InvalidateType.Children)); + await item.Rebuild(); + return item; } @@ -153,7 +155,7 @@ namespace MatterHackers.MatterControl.DesignTools } rebuildLock.Dispose(); - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); } diff --git a/MatterControlLib/DesignTools/Primitives/TextPathObject3D.cs b/MatterControlLib/DesignTools/Primitives/TextPathObject3D.cs index 43b667a2a..2b00faba8 100644 --- a/MatterControlLib/DesignTools/Primitives/TextPathObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/TextPathObject3D.cs @@ -144,7 +144,7 @@ namespace MatterHackers.MatterControl.DesignTools base.Mesh = null; } - this.Invalidate(new InvalidateArgs(this, InvalidateType.Path)); + Invalidate(InvalidateType.Path); } public override Mesh Mesh diff --git a/MatterControlLib/DesignTools/Primitives/TorusObject3D.cs b/MatterControlLib/DesignTools/Primitives/TorusObject3D.cs index c3fd8d209..3705334a8 100644 --- a/MatterControlLib/DesignTools/Primitives/TorusObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/TorusObject3D.cs @@ -128,10 +128,10 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); if (changed) { - base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } } diff --git a/MatterControlLib/DesignTools/Primitives/WedgeObject3D.cs b/MatterControlLib/DesignTools/Primitives/WedgeObject3D.cs index 0a466f57a..f076afe47 100644 --- a/MatterControlLib/DesignTools/Primitives/WedgeObject3D.cs +++ b/MatterControlLib/DesignTools/Primitives/WedgeObject3D.cs @@ -93,7 +93,7 @@ namespace MatterHackers.MatterControl.DesignTools } } - Invalidate(new InvalidateArgs(this, InvalidateType.Mesh)); + Invalidate(InvalidateType.Mesh); } } } \ No newline at end of file diff --git a/MatterControlLib/Library/Providers/MatterControl/PrimitivesContainer.cs b/MatterControlLib/Library/Providers/MatterControl/PrimitivesContainer.cs index a62bc0d67..2efabd473 100644 --- a/MatterControlLib/Library/Providers/MatterControl/PrimitivesContainer.cs +++ b/MatterControlLib/Library/Providers/MatterControl/PrimitivesContainer.cs @@ -71,7 +71,7 @@ namespace MatterHackers.MatterControl.Library { DateCreated = new System.DateTime(index++) }, new GeneratorItem( () => "Text".Localize(), - () => TextObject3D.Create()) + () => TextObject3D.Create().Result) { DateCreated = new System.DateTime(index++) }, #if DEBUG new GeneratorItem( diff --git a/MatterControlLib/Library/Widgets/InsertionGroupObject3D.cs b/MatterControlLib/Library/Widgets/InsertionGroupObject3D.cs index d3dd45050..fdc4668b6 100644 --- a/MatterControlLib/Library/Widgets/InsertionGroupObject3D.cs +++ b/MatterControlLib/Library/Widgets/InsertionGroupObject3D.cs @@ -147,7 +147,7 @@ namespace MatterHackers.MatterControl.Library this.Children.Remove(placeholderItem); this.Collapse(); - this.Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + this.Invalidate(InvalidateType.Children); })); } diff --git a/MatterControlLib/PartPreviewWindow/View3D/Actions/ImageEditor.cs b/MatterControlLib/PartPreviewWindow/View3D/Actions/ImageEditor.cs index aa96f4695..0548f3aba 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/Actions/ImageEditor.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/Actions/ImageEditor.cs @@ -115,7 +115,7 @@ namespace MatterHackers.MatterControl.DesignTools thumbnailWidget.Image = SetImage(theme, imageObject); column.Invalidate(); - imageObject.Invalidate(new InvalidateArgs(imageObject, InvalidateType.Image)); + imageObject.Invalidate(InvalidateType.Image); }; pasteMenu.Enabled = Clipboard.Instance.ContainsImage; @@ -172,7 +172,7 @@ namespace MatterHackers.MatterControl.DesignTools thumbnailWidget.Image = SetImage(theme, imageObject); column.Invalidate(); - imageObject.Invalidate(new InvalidateArgs(imageObject, InvalidateType.Image)); + imageObject.Invalidate(InvalidateType.Image); }); }); }; diff --git a/MatterControlLib/PartPreviewWindow/View3D/Actions/MeshWrapperObject3D.cs b/MatterControlLib/PartPreviewWindow/View3D/Actions/MeshWrapperObject3D.cs index 521baa3ea..bcafe8b83 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/Actions/MeshWrapperObject3D.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/Actions/MeshWrapperObject3D.cs @@ -122,7 +122,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D } } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } /// @@ -199,7 +199,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D } } - Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); } public void ResetMeshWrapperMeshes(Object3DPropertyFlags flags, CancellationToken cancellationToken) @@ -266,7 +266,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D } } - Invalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } public void WrapItems(List items) @@ -290,7 +290,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D this.MakeNameNonColliding(); } - Invalidate(new InvalidateArgs(this, InvalidateType.Properties)); + Invalidate(InvalidateType.Properties); } private void AddMeshWrapperToAllChildren() diff --git a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D.cs b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D.cs index 66f1be733..661317e70 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D.cs @@ -173,7 +173,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D } rebuildLocks.Dispose(); - base.Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); diff --git a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs index d68b36a33..d786b83f1 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs @@ -171,7 +171,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D } rebuildLocks.Dispose(); - base.Invalidate(new InvalidateArgs(this, InvalidateType.Children)); + Invalidate(InvalidateType.Children); return Task.CompletedTask; }); diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 41050ad01..631a08ac4 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 41050ad01f14621325efb3b56541f6e1a3c80deb +Subproject commit 631a08ac4c78535921ea648c3e1ced1a1ba28572