Change the Invalidate Type to flags
remove undo buffer from invalidate type
This commit is contained in:
parent
0d74b4b5d8
commit
f0728e0610
56 changed files with 283 additions and 261 deletions
|
|
@ -652,7 +652,7 @@ namespace MatterHackers.MatterControl
|
|||
var selectedItem = scene.SelectedItem;
|
||||
var align = new AlignObject3D();
|
||||
align.AddSelectionAsChildren(scene, selectedItem);
|
||||
align.Invalidate(new InvalidateArgs(align, InvalidateType.Properties, null));
|
||||
align.Invalidate(new InvalidateArgs(align, InvalidateType.Properties));
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("align_left_dark.png", 16, 16, theme.InvertIcons).SetPreMultiply(),
|
||||
IsEnabled = (scene) => scene.SelectedItem is SelectionGroupObject3D,
|
||||
|
|
@ -722,7 +722,7 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
var array = new ArrayLinearObject3D();
|
||||
array.AddSelectionAsChildren(sceneContext.Scene, sceneContext.Scene.SelectedItem);
|
||||
array.Invalidate(new InvalidateArgs(array, InvalidateType.Properties, null));
|
||||
array.Invalidate(new InvalidateArgs(array, InvalidateType.Properties));
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("array_linear.png").SetPreMultiply(),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null && !(scene.SelectedItem is SelectionGroupObject3D),
|
||||
|
|
@ -735,7 +735,7 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
var array = new ArrayRadialObject3D();
|
||||
array.AddSelectionAsChildren(sceneContext.Scene, sceneContext.Scene.SelectedItem);
|
||||
array.Invalidate(new InvalidateArgs(array, InvalidateType.Properties, null));
|
||||
array.Invalidate(new InvalidateArgs(array, InvalidateType.Properties));
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("array_radial.png").SetPreMultiply(),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null && !(scene.SelectedItem is SelectionGroupObject3D),
|
||||
|
|
@ -748,7 +748,7 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
var array = new ArrayAdvancedObject3D();
|
||||
array.AddSelectionAsChildren(sceneContext.Scene, sceneContext.Scene.SelectedItem);
|
||||
array.Invalidate(new InvalidateArgs(array, InvalidateType.Properties, null));
|
||||
array.Invalidate(new InvalidateArgs(array, InvalidateType.Properties));
|
||||
},
|
||||
Icon = AggContext.StaticData.LoadIcon("array_advanced.png").SetPreMultiply(),
|
||||
IsEnabled = (scene) => scene.SelectedItem != null && !(scene.SelectedItem is SelectionGroupObject3D),
|
||||
|
|
@ -1133,7 +1133,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, null));
|
||||
path.Invalidate(new InvalidateArgs(path, InvalidateType.Properties));
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
|
|
@ -1249,7 +1249,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, null));
|
||||
imageObject.Invalidate(new InvalidateArgs(imageObject, InvalidateType.Image));
|
||||
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
|
|
@ -1373,7 +1373,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, null));
|
||||
extrude.Invalidate(new InvalidateArgs(extrude, InvalidateType.Properties));
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
|
|
@ -1401,7 +1401,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, null));
|
||||
smoothPath.Invalidate(new InvalidateArgs(smoothPath, InvalidateType.Properties));
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
|
|
@ -1429,7 +1429,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, null));
|
||||
inflatePath.Invalidate(new InvalidateArgs(inflatePath, InvalidateType.Properties));
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
|
|
@ -1455,7 +1455,7 @@ namespace MatterHackers.MatterControl
|
|||
};
|
||||
newChild.Matrix = Matrix4X4.Identity;
|
||||
baseMesh.Children.Add(newChild);
|
||||
baseMesh.Invalidate(new InvalidateArgs(baseMesh, InvalidateType.Properties, null));
|
||||
baseMesh.Invalidate(new InvalidateArgs(baseMesh, InvalidateType.Properties));
|
||||
|
||||
scene.UndoBuffer.AddAndDo(
|
||||
new ReplaceCommand(
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
@ -96,7 +96,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
Height = BaseHeight
|
||||
};
|
||||
|
||||
textObject.Invalidate(new InvalidateArgs(textObject, InvalidateType.Properties, null));
|
||||
textObject.Invalidate(new InvalidateArgs(textObject, 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.Content));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -86,7 +86,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
@ -267,7 +267,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
}
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -65,24 +65,25 @@ namespace MatterHackers.MatterControl.Plugins.Lithophane
|
|||
|
||||
public Vector3 ImageOffset { get; private set; } = Vector3.Zero;
|
||||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
public override void OnInvalidate(InvalidateArgs invalidateArgs)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
&& invalidateType.Source != this
|
||||
var invalidateType = invalidateArgs.InvalidateType;
|
||||
if ((invalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateArgs.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild(null);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
&& invalidateType.Source == this)
|
||||
else if (invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateArgs.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateType);
|
||||
base.OnInvalidate(invalidateArgs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -113,6 +114,8 @@ namespace MatterHackers.MatterControl.Plugins.Lithophane
|
|||
// Apply offset
|
||||
this.Matrix *= Matrix4X4.CreateTranslation(-this.ImageOffset);
|
||||
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,23 +53,23 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
|
||||
public override async void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateType);
|
||||
}
|
||||
}
|
||||
|
||||
public override Task Rebuild()
|
||||
|
|
@ -96,6 +96,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
}
|
||||
|
||||
rebuildLocks.Dispose();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -150,15 +150,15 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild(null);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
list.AddRange(ScaleItem.Children);
|
||||
});
|
||||
}
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public override void Remove(UndoBuffer undoBuffer)
|
||||
|
|
@ -122,20 +122,20 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
});
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild(null);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -53,23 +53,23 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
|
||||
public override async void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateType);
|
||||
}
|
||||
}
|
||||
|
||||
public override Task Rebuild()
|
||||
|
|
@ -85,23 +85,17 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
{
|
||||
Intersect(cancellationToken, reporter);
|
||||
}
|
||||
catch { }
|
||||
|
||||
UiThread.RunOnIdle(() =>
|
||||
catch
|
||||
{
|
||||
rebuildLocks.Dispose();
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
});
|
||||
}
|
||||
|
||||
rebuildLocks.Dispose();
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
||||
public void Intersect()
|
||||
{
|
||||
Intersect(CancellationToken.None, null);
|
||||
}
|
||||
|
||||
private void Intersect(CancellationToken cancellationToken, IProgress<ProgressStatus> reporter)
|
||||
{
|
||||
ResetMeshWrapperMeshes(Object3DPropertyFlags.All, cancellationToken);
|
||||
|
|
|
|||
|
|
@ -93,22 +93,22 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
this.Matrix = oldMatrix;
|
||||
}
|
||||
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild();
|
||||
|
|
|
|||
|
|
@ -57,15 +57,15 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild(null);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
@ -124,7 +124,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
Matrix = currentMatrix;
|
||||
}
|
||||
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -97,27 +97,27 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
}
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Matrix, null));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Matrix));
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Matrix, invalidateType.UndoBuffer);
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Matrix);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Matrix, invalidateType.UndoBuffer);
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Matrix);
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
|
|
|
|||
|
|
@ -296,23 +296,24 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
return positionToAlignTo + extraOffset;
|
||||
}
|
||||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
public override async void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Matrix, invalidateType.UndoBuffer));
|
||||
await Rebuild();
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Matrix, invalidateType.UndoBuffer));
|
||||
await Rebuild();
|
||||
}
|
||||
|
||||
// and also always pass back the actual type
|
||||
base.OnInvalidate(invalidateType);
|
||||
}
|
||||
|
||||
public override Task Rebuild()
|
||||
|
|
@ -442,6 +443,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
}));
|
||||
}
|
||||
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Matrix));
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
|
|
@ -464,7 +466,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
base.Remove(undoBuffer);
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public void UpdateControls(PublicPropertyChange change)
|
||||
|
|
|
|||
|
|
@ -100,6 +100,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
});
|
||||
SourceContainer.Visible = false;
|
||||
rebuildLock.Dispose();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
|
||||
SourceContainer.Visible = false;
|
||||
rebuildLock.Dispose();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -127,6 +127,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
});
|
||||
SourceContainer.Visible = false;
|
||||
rebuildLock.Dispose();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,8 +48,8 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
{
|
||||
public class CurveObject3D_2 : OperationSourceContainerObject3D, IEditorDraw
|
||||
{
|
||||
// holds where we rotate the object
|
||||
private Vector2 rotationCenter;
|
||||
// this needs to serialize but not be editable
|
||||
public Vector3 rotationOffset;
|
||||
|
||||
public CurveObject3D_2()
|
||||
{
|
||||
|
|
@ -79,7 +79,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
var currentMatrixInv = Matrix.Inverted;
|
||||
var aabb = this.GetAxisAlignedBoundingBox(currentMatrixInv);
|
||||
|
||||
layer.World.RenderCylinderOutline(this.WorldMatrix(), new Vector3(rotationCenter, aabb.Center.Z), Diameter, aabb.ZSize, 30, Color.Red);
|
||||
layer.World.RenderCylinderOutline(this.WorldMatrix(), Vector3.Zero, Diameter, aabb.ZSize, 30, Color.Red);
|
||||
}
|
||||
|
||||
// turn the lighting back on
|
||||
|
|
@ -105,6 +105,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
null,
|
||||
(reporter, cancellationToken) =>
|
||||
{
|
||||
this.Translate(-rotationOffset);
|
||||
SourceContainer.Visible = true;
|
||||
RemoveAllButSource();
|
||||
|
||||
|
|
@ -125,7 +126,15 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
{
|
||||
var radius = Diameter / 2;
|
||||
var circumference = MathHelper.Tau * radius;
|
||||
rotationCenter = new Vector2(aabb.MinXYZ.X + (aabb.MaxXYZ.X - aabb.MinXYZ.X) * (StartPercent / 100), aabb.MaxXYZ.Y + radius);
|
||||
var rotationCenter = new Vector3(aabb.MinXYZ.X + (aabb.MaxXYZ.X - aabb.MinXYZ.X) * (StartPercent / 100), aabb.MaxXYZ.Y + radius, aabb.Center.Z);
|
||||
|
||||
rotationOffset = rotationCenter;
|
||||
if (!BendCcw)
|
||||
{
|
||||
// fix the stored center so we draw correctly
|
||||
rotationOffset.Y = aabb.MinXYZ.Y - radius;
|
||||
}
|
||||
|
||||
foreach (var sourceItem in SourceContainer.VisibleMeshes())
|
||||
{
|
||||
var originalMesh = sourceItem.Mesh;
|
||||
|
|
@ -152,7 +161,8 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
var rotatePosition = new Vector3Float(Math.Cos(angleToRotate), Math.Sin(angleToRotate), 0) * distanceFromCenter;
|
||||
rotatePosition.Z = worldPosition.Z;
|
||||
var worldWithBend = rotatePosition + new Vector3Float(rotationCenter.X, radius + aabb.MaxXYZ.Y, 0);
|
||||
transformedMesh.Vertices[i] = worldWithBend.Transform(invItemMatrix);
|
||||
|
||||
transformedMesh.Vertices[i] = worldWithBend.Transform(invItemMatrix) - new Vector3Float(rotationOffset);
|
||||
}
|
||||
|
||||
transformedMesh.MarkAsChanged();
|
||||
|
|
@ -165,18 +175,14 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
newMesh.CopyWorldProperties(sourceItem, this, Object3DPropertyFlags.All);
|
||||
this.Children.Add(newMesh);
|
||||
}
|
||||
|
||||
if (!BendCcw)
|
||||
{
|
||||
// fix the stored center so we draw correctly
|
||||
rotationCenter = new Vector2(rotationCenter.X, aabb.MinXYZ.Y - radius);
|
||||
}
|
||||
}
|
||||
|
||||
// set the matrix back
|
||||
Matrix = currentMatrix;
|
||||
this.Translate(new Vector3(rotationOffset));
|
||||
SourceContainer.Visible = false;
|
||||
rebuildLocks.Dispose();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -137,25 +137,26 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
|
||||
public override async void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
await Rebuild();
|
||||
}
|
||||
else if ((invalidateType.InvalidateType == InvalidateType.Properties
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh
|
||||
|| invalidateType.InvalidateType == InvalidateType.Content))
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Children))
|
||||
{
|
||||
cacheThisMatrix = Matrix4X4.Identity;
|
||||
base.OnInvalidate(invalidateType);
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
|
|
@ -186,6 +187,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
}
|
||||
}
|
||||
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Matrix));
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
|
|
@ -266,7 +268,10 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
set
|
||||
{
|
||||
boundsSize.X = value;
|
||||
Rebuild();
|
||||
if (this.Children.Count() > 0)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -277,7 +282,10 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
set
|
||||
{
|
||||
boundsSize.Y = value;
|
||||
Rebuild();
|
||||
if (this.Children.Count() > 0)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -288,7 +296,10 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
set
|
||||
{
|
||||
boundsSize.Z = value;
|
||||
Rebuild();
|
||||
if (this.Children.Count() > 0)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -310,19 +310,19 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
{
|
||||
this.DebugDepth("Invalidate");
|
||||
|
||||
if (invalidateType.InvalidateType == InvalidateType.Image
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Image)
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Path, invalidateType.UndoBuffer));
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Path));
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
UpdateHistogramDisplay();
|
||||
await Rebuild();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Path, invalidateType.UndoBuffer));
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Path));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -384,11 +384,11 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
if (propertyUpdated)
|
||||
{
|
||||
UpdateHistogramDisplay();
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Properties, null));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Properties));
|
||||
}
|
||||
|
||||
rebuildLock.Dispose();
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Path, null));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Path));
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
undoBuffer.AddAndDo(new ReplaceCommand(new[] { this }, new[] { meshOnlyItem }));
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public LinearExtrudeObject3D()
|
||||
|
|
@ -92,19 +92,21 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
{
|
||||
this.DebugDepth("Invalidate");
|
||||
|
||||
if ((eventArgs.InvalidateType == InvalidateType.Path
|
||||
|| eventArgs.InvalidateType == InvalidateType.Content)
|
||||
if ((eventArgs.InvalidateType.HasFlag(InvalidateType.Path)
|
||||
|| eventArgs.InvalidateType.HasFlag(InvalidateType.Children))
|
||||
&& eventArgs.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Mesh, eventArgs.UndoBuffer));
|
||||
}
|
||||
else if (eventArgs.InvalidateType == InvalidateType.Properties
|
||||
else if (eventArgs.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& eventArgs.Source == this)
|
||||
{
|
||||
await Rebuild();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Mesh, eventArgs.UndoBuffer));
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(eventArgs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
this.Matrix = oldMatrix;
|
||||
SourceContainer.Visible = false;
|
||||
rebuildLock.Dispose();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,32 +130,32 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
}
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content, undoBuffer));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public override async void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
// TODO: color and output type could have special consideration that would not require a rebulid
|
||||
// They could jus propagate the color and output type to the corecty child and everything would be good
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh
|
||||
|| invalidateType.InvalidateType == InvalidateType.Color
|
||||
|| invalidateType.InvalidateType == InvalidateType.OutputType)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Color)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.OutputType))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateType);
|
||||
}
|
||||
}
|
||||
|
||||
public override void Remove(UndoBuffer undoBuffer)
|
||||
|
|
@ -188,7 +188,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
}
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content, undoBuffer));
|
||||
Invalidate(new InvalidateArgs(this, 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.Content));
|
||||
this.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -58,15 +58,15 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Path)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Path))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild(null);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -61,23 +61,23 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
{
|
||||
this.DebugDepth("Invalidate");
|
||||
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Path)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Path))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateType);
|
||||
}
|
||||
}
|
||||
|
||||
public override Task Rebuild()
|
||||
|
|
@ -93,7 +93,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
DoSmoothing((long)(SmoothDistance * 1000), Iterations);
|
||||
|
||||
rebuildLock.Dispose();
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Path, null));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Path));
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,21 +102,23 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateArgs)
|
||||
{
|
||||
if ((invalidateArgs.InvalidateType == InvalidateType.Content
|
||||
|| invalidateArgs.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateArgs.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateArgs.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
else if (invalidateArgs.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateArgs.Source == this)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateArgs);
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateArgs);
|
||||
}
|
||||
}
|
||||
|
||||
public override Task Rebuild()
|
||||
|
|
@ -127,7 +129,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
TransformItem.Matrix = RotationMatrix;
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Matrix, null));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Matrix));
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -183,21 +183,23 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateArgs)
|
||||
{
|
||||
if ((invalidateArgs.InvalidateType == InvalidateType.Content
|
||||
|| invalidateArgs.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateArgs.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateArgs.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
else if (invalidateArgs.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateArgs.Source == this)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateArgs);
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateArgs);
|
||||
}
|
||||
}
|
||||
|
||||
public override Task Rebuild()
|
||||
|
|
@ -211,7 +213,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
TransformItem.Matrix *= Matrix4X4.CreateTranslation(ScaleAbout);
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Matrix, null));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Matrix));
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
list.AddRange(TransformItem.Children);
|
||||
});
|
||||
}
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public override void Remove(UndoBuffer undoBuffer)
|
||||
|
|
@ -115,7 +115,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
});
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public virtual void WrapItem(IObject3D item, UndoBuffer undoBuffer = null)
|
||||
|
|
@ -170,7 +170,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
itemLock?.Dispose();
|
||||
}
|
||||
|
||||
item.Parent?.Invalidate(new InvalidateArgs(item, InvalidateType.Content));
|
||||
item.Parent?.Invalidate(new InvalidateArgs(item, InvalidateType.Children));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -78,21 +78,23 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateType);
|
||||
}
|
||||
}
|
||||
|
||||
public override Task Rebuild()
|
||||
|
|
@ -105,7 +107,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
TransformItem.Matrix = Matrix4X4.CreateTranslation(Translation);
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Matrix, null));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Matrix));
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,16 +115,16 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Path
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Path)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild(null);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
@ -149,8 +149,8 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
this.Children.Modify(list =>
|
||||
{
|
||||
list.Clear();
|
||||
// add back in the sourceContainer
|
||||
list.Add(firstChild);
|
||||
// add back in the sourceContainer
|
||||
list.Add(firstChild);
|
||||
});
|
||||
|
||||
// and create the base
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
undoBuffer.AddAndDo(new ReplaceCommand(new[] { this }, newChildren));
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content, undoBuffer));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public override void Remove(UndoBuffer undoBuffer)
|
||||
|
|
@ -127,7 +127,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
}
|
||||
}
|
||||
|
||||
parent.Invalidate(new InvalidateArgs(this, InvalidateType.Content, null));
|
||||
parent.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild();
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
{
|
||||
var item = new TextObject3D();
|
||||
|
||||
item.Invalidate(new InvalidateArgs(null, InvalidateType.Content, null));
|
||||
item.Invalidate(new InvalidateArgs(null, InvalidateType.Children));
|
||||
return item;
|
||||
}
|
||||
|
||||
|
|
@ -89,23 +89,23 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override async void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateType);
|
||||
}
|
||||
}
|
||||
|
||||
public override Task Rebuild()
|
||||
|
|
@ -153,6 +153,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
}
|
||||
|
||||
rebuildLock.Dispose();
|
||||
base.OnInvalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,15 +90,15 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
Rebuild(null);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
@ -144,7 +144,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
base.Mesh = null;
|
||||
}
|
||||
|
||||
this.Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
this.Invalidate(new InvalidateArgs(this, InvalidateType.Path));
|
||||
}
|
||||
|
||||
public override Mesh Mesh
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
public override void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
Rebuild(null);
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
};
|
||||
updateButton.Click += (s, e) =>
|
||||
{
|
||||
context.item.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
context.item.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
};
|
||||
mainContainer.AddChild(updateButton);
|
||||
}
|
||||
|
|
@ -313,20 +313,20 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
undoBuffer.AddAndDo(new UndoRedoActions(() =>
|
||||
{
|
||||
property.SetValue(valueFromString(oldValue));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name));
|
||||
},
|
||||
() =>
|
||||
{
|
||||
property.SetValue(valueFromString(newValue));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name));
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
property.SetValue(valueFromString(newValue));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name));
|
||||
}
|
||||
};
|
||||
|
|
@ -342,7 +342,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
void RefreshField(object s, InvalidateArgs e)
|
||||
{
|
||||
if (e.InvalidateType == InvalidateType.Properties)
|
||||
if (e.InvalidateType.HasFlag(InvalidateType.Properties))
|
||||
{
|
||||
double newValue = (double)property.Value;
|
||||
if (newValue != field.DoubleValue)
|
||||
|
|
@ -364,7 +364,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
field.ValueChanged += (s, e) =>
|
||||
{
|
||||
property.SetValue(field.Color);
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name));
|
||||
};
|
||||
|
||||
|
|
@ -406,7 +406,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
field.ValueChanged += (s, e) =>
|
||||
{
|
||||
property.SetValue(field.DirectionVector);
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name));
|
||||
};
|
||||
|
||||
|
|
@ -454,7 +454,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
Normal = field1.DirectionVector.Normal,
|
||||
Origin = property.Item.Children.First().GetAxisAlignedBoundingBox().Center + field2.Vector3
|
||||
});
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name));
|
||||
};
|
||||
field2.ValueChanged += (s, e) =>
|
||||
|
|
@ -464,7 +464,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
Normal = field1.DirectionVector.Normal,
|
||||
Origin = property.Item.Children.First().GetAxisAlignedBoundingBox().Center + field2.Vector3
|
||||
});
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name));
|
||||
};
|
||||
|
||||
|
|
@ -530,7 +530,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
void RefreshField(object s, InvalidateArgs e)
|
||||
{
|
||||
if (e.InvalidateType == InvalidateType.Properties)
|
||||
if (e.InvalidateType.HasFlag(InvalidateType.Properties))
|
||||
{
|
||||
int newValue = (int)property.Value;
|
||||
if (newValue != field.IntValue)
|
||||
|
|
@ -586,7 +586,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
field.ValueChanged += (s, e) =>
|
||||
{
|
||||
property.SetValue(Convert.ToChar(field.Value));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name));
|
||||
};
|
||||
|
||||
|
|
@ -619,7 +619,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
field.ValueChanged += (s, e) =>
|
||||
{
|
||||
property.SetValue(Enum.Parse(property.PropertyType, field.Value));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties, undoBuffer));
|
||||
object3D?.Invalidate(new InvalidateArgs(context.item, InvalidateType.Properties));
|
||||
propertyGridModifier?.UpdateControls(new PublicPropertyChange(context, property.PropertyInfo.Name));
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ namespace MatterHackers.MatterControl.Library
|
|||
this.Children.Remove(placeholderItem);
|
||||
this.Collapse();
|
||||
|
||||
this.Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
this.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
|
||||
imageObject.Invalidated += (s, e) =>
|
||||
{
|
||||
if (e.InvalidateType == InvalidateType.Image
|
||||
if (e.InvalidateType.HasFlag(InvalidateType.Image)
|
||||
&& activeImage != imageObject.Image)
|
||||
{
|
||||
thumbnailImage = SetImage(theme, imageObject);
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
}
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content, undoBuffer));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -199,7 +199,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
}
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public void ResetMeshWrapperMeshes(Object3DPropertyFlags flags, CancellationToken cancellationToken)
|
||||
|
|
@ -266,7 +266,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
}
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Properties, null));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Properties));
|
||||
}
|
||||
|
||||
public void WrapItems(List<IObject3D> items)
|
||||
|
|
@ -290,7 +290,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
this.MakeNameNonColliding();
|
||||
}
|
||||
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Properties, null));
|
||||
Invalidate(new InvalidateArgs(this, InvalidateType.Properties));
|
||||
}
|
||||
|
||||
private void AddMeshWrapperToAllChildren()
|
||||
|
|
|
|||
|
|
@ -49,12 +49,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
var firstChild = this.Children.FirstOrDefault();
|
||||
if (firstChild != null)
|
||||
{
|
||||
if (invalidateType.InvalidateType == InvalidateType.Color)
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Color))
|
||||
{
|
||||
this.Color = firstChild.Color;
|
||||
}
|
||||
|
||||
if (invalidateType.InvalidateType == InvalidateType.Material)
|
||||
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Material))
|
||||
{
|
||||
this.MaterialIndex = firstChild.MaterialIndex;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,23 +57,23 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
|
||||
public override async void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
else
|
||||
{
|
||||
base.OnInvalidate(invalidateType);
|
||||
}
|
||||
}
|
||||
|
||||
public void SubtractAndReplace()
|
||||
|
|
@ -172,11 +172,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
{
|
||||
}
|
||||
|
||||
UiThread.RunOnIdle(() =>
|
||||
{
|
||||
rebuildLocks.Dispose();
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
});
|
||||
rebuildLocks.Dispose();
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -131,20 +131,18 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
|
||||
public override async void OnInvalidate(InvalidateArgs invalidateType)
|
||||
{
|
||||
if ((invalidateType.InvalidateType == InvalidateType.Content
|
||||
|| invalidateType.InvalidateType == InvalidateType.Matrix
|
||||
|| invalidateType.InvalidateType == InvalidateType.Mesh)
|
||||
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|
||||
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
|
||||
&& invalidateType.Source != this
|
||||
&& !RebuildLocked)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
else if (invalidateType.InvalidateType == InvalidateType.Properties
|
||||
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|
||||
&& invalidateType.Source == this)
|
||||
{
|
||||
await Rebuild();
|
||||
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
|
||||
}
|
||||
|
||||
base.OnInvalidate(invalidateType);
|
||||
|
|
@ -172,11 +170,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
|
|||
{
|
||||
}
|
||||
|
||||
UiThread.RunOnIdle(() =>
|
||||
{
|
||||
rebuildLocks.Dispose();
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Content));
|
||||
});
|
||||
rebuildLocks.Dispose();
|
||||
base.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
|
||||
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
scene.SelectLastChild();
|
||||
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Content));
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
|
|
@ -95,7 +95,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
scene.AddToSelection(item);
|
||||
}
|
||||
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Content));
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Children));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -67,7 +67,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
scene.AddToSelection(item);
|
||||
}
|
||||
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Content));
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
|
|
@ -86,7 +86,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
scene.SelectedItem = null;
|
||||
}
|
||||
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Content));
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Children));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -68,7 +68,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
});
|
||||
|
||||
scene.SelectLastChild();
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Content));
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Children));
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
|
|
@ -93,7 +93,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
});
|
||||
|
||||
scene.SelectLastChild();
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Content));
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Children));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1069,7 +1069,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
this.deferEditorTillMouseUp = false;
|
||||
Scene_SelectionChanged(null, null);
|
||||
|
||||
Scene.Invalidate(new InvalidateArgs(null, InvalidateType.Content, null));
|
||||
Scene.Invalidate(new InvalidateArgs(null, InvalidateType.Children));
|
||||
|
||||
// Set focus to View3DWidget after drag-drop
|
||||
UiThread.RunOnIdle(this.Focus);
|
||||
|
|
@ -1886,14 +1886,14 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
private void Scene_Invalidated(object sender, InvalidateArgs e)
|
||||
{
|
||||
if (e.InvalidateType == InvalidateType.Content
|
||||
if (e.InvalidateType.HasFlag(InvalidateType.Children)
|
||||
&& !rebuildTreePending)
|
||||
{
|
||||
rebuildTreePending = true;
|
||||
UiThread.RunOnIdle(this.RebuildTree);
|
||||
}
|
||||
|
||||
if (e.InvalidateType == InvalidateType.Name)
|
||||
if (e.InvalidateType.HasFlag(InvalidateType.Name))
|
||||
{
|
||||
// clear and restore the selection so we have the name change
|
||||
var lastSelectedItem = Scene.SelectedItem;
|
||||
|
|
|
|||
|
|
@ -815,7 +815,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
}
|
||||
}
|
||||
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Content, null));
|
||||
scene.Invalidate(new InvalidateArgs(null, InvalidateType.Children));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit a1e536bd0d14cd92af62cf3bdc90f9a53d4c1cff
|
||||
Subproject commit 41050ad01f14621325efb3b56541f6e1a3c80deb
|
||||
|
|
@ -539,7 +539,7 @@ namespace MatterControl.Tests.MatterControl
|
|||
AppContext.Platform = AggContext.CreateInstanceFrom<INativePlatformFeatures>(platformFeaturesProvider);
|
||||
AppContext.Platform.ProcessCommandline();
|
||||
|
||||
//DoAabbCalculatedCorrectlyForCurvedFitObjects();
|
||||
DoAabbCalculatedCorrectlyForCurvedFitObjects();
|
||||
}
|
||||
|
||||
public async void DoAabbCalculatedCorrectlyForCurvedFitObjects()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue