Make updates check for sheet references

This commit is contained in:
LarsBrubaker 2021-06-19 21:28:16 -07:00
parent b0606f84d4
commit 6ebc9188c9
30 changed files with 282 additions and 195 deletions

View file

@ -177,29 +177,32 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
Invalidate(InvalidateType.Children);
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
// TODO: color and output type could have special consideration that would not require a rebuild
// They could just propagate the color and output type to the correctly child and everything would be good
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Path)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Color)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.OutputType))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Path)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Color)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.OutputType))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
//else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
//{
// await Rebuild();
//}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -92,24 +92,27 @@ namespace MatterHackers.MatterControl.DesignTools
GL.Enable(EnableCap.Lighting);
}
public override void OnInvalidate(InvalidateArgs invalidateType)
public override void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -144,24 +144,27 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
Parent?.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
}
public override void OnInvalidate(InvalidateArgs invalidateType)
public override void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -55,24 +55,27 @@ namespace MatterHackers.MatterControl.DesignTools
[DisplayName("Back Ratio")]
public double PinchRatio { get; set; } = .5;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -98,23 +98,26 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
return Task.CompletedTask;
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}
}

View file

@ -313,25 +313,28 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
return positionToAlignTo + extraOffset;
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
// and also always pass back the actual type
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -175,32 +175,35 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
return base.GetAxisAlignedBoundingBox(matrix);
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
additonalInvalidate = invalidateType.InvalidateType;
additonalInvalidate = invalidateArgs.InvalidateType;
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Children))
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
base.OnInvalidate(invalidateType);
await Rebuild();
}
else if (invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children))
{
base.OnInvalidate(invalidateArgs);
}
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
additonalInvalidate = InvalidateType.None;
}

View file

@ -130,30 +130,33 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
return base.GetAxisAlignedBoundingBox(matrix);
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Children))
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
base.OnInvalidate(invalidateType);
await Rebuild();
}
else if (invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children))
{
base.OnInvalidate(invalidateArgs);
}
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
public override Task Rebuild()

View file

@ -267,22 +267,24 @@ namespace MatterHackers.MatterControl.DesignTools
}
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if (invalidateType.InvalidateType.HasFlag(InvalidateType.Image)
&& invalidateType.Source != this
if (invalidateArgs.InvalidateType.HasFlag(InvalidateType.Image)
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
UpdateHistogramDisplay();
await Rebuild();
}
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
private Color GetRGBA(byte[] buffer, int offset)
@ -294,6 +296,7 @@ namespace MatterHackers.MatterControl.DesignTools
{
this.DebugDepth("Rebuild");
UpdateHistogramDisplay();
bool propertyUpdated = false;
var minSeparation = .01;
var rangeStart = RangeStart.Value(this);

View file

@ -68,24 +68,27 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
object3DControlsLayer.AddControls(ControlTypes.Standard2D);
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Path))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Path))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -63,24 +63,27 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
[EnumDisplay(Mode = EnumDisplayAttribute.PresentationMode.Buttons)]
public ExpandStyles OuterStyle { get; set; } = ExpandStyles.Sharp;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Path))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Path))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -61,24 +61,27 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
object3DControlsLayer.AddControls(ControlTypes.Standard2D);
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Path))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Path))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -78,24 +78,27 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
#endregion // editable properties
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -192,27 +192,30 @@ namespace MatterHackers.MatterControl.DesignTools
return item;
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Path)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Path)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
// make sure we clear our cache
meshVertexCache.vertexSource = null;
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -64,16 +64,19 @@ namespace MatterHackers.MatterControl.DesignTools
public IntOrExpression Sides { get; set; } = 40;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -86,16 +86,19 @@ namespace MatterHackers.MatterControl.DesignTools
object3DControlsLayer.AddControls(ControlTypes.RotateXYZ);
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -143,16 +143,19 @@ namespace MatterHackers.MatterControl.DesignTools
[MaxDecimalPlaces(2)]
public DoubleOrExpression DiameterTop { get; set; } = 20;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -190,16 +190,19 @@ namespace MatterHackers.MatterControl.DesignTools
base.Remove(undoBuffer);
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -65,16 +65,19 @@ namespace MatterHackers.MatterControl.DesignTools
[MaxDecimalPlaces(2)]
public IntOrExpression Sides { get; set; } = 20;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -74,16 +74,19 @@ namespace MatterHackers.MatterControl.DesignTools
public IntOrExpression LongitudeSides { get; set; } = 40;
public IntOrExpression LatitudeSides { get; set; } = 10;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -64,16 +64,19 @@ namespace MatterHackers.MatterControl.DesignTools
[MaxDecimalPlaces(2)]
public DoubleOrExpression Height { get; set; } = 10;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -73,16 +73,19 @@ namespace MatterHackers.MatterControl.DesignTools
object3DControlsLayer.AddControls(ControlTypes.RotateXYZ);
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -65,16 +65,19 @@ namespace MatterHackers.MatterControl.DesignTools
[MaxDecimalPlaces(2)]
public DoubleOrExpression Height { get; set; } = 20;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -93,16 +93,19 @@ namespace MatterHackers.MatterControl.DesignTools
[MaxDecimalPlaces(2)]
public DoubleOrExpression EndingAngle { get; set; } = 360;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -94,16 +94,19 @@ namespace MatterHackers.MatterControl.DesignTools
public IntOrExpression LatitudeSides { get; set; } = 30;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -89,24 +89,27 @@ namespace MatterHackers.MatterControl.DesignTools
undoBuffer.AddAndDo(new ReplaceCommand(new[] { this }, new[] { newContainer }));
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -83,16 +83,19 @@ namespace MatterHackers.MatterControl.DesignTools
[MaxDecimalPlaces(2)]
public DoubleOrExpression RingPhaseAngle { get; set; } = 0;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -71,16 +71,19 @@ namespace MatterHackers.MatterControl.DesignTools
public IntOrExpression RoundSegments { get; set; } = 15;
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}

View file

@ -177,7 +177,7 @@ namespace MatterHackers.MatterControl.DesignTools
{
updateItems[i].rebuildLock.Dispose();
updateItems[i].rebuildLock = null;
updateItems[i].item.Invalidate(new InvalidateArgs(updateItems[i].item, InvalidateType.SheetUpdated));
updateItems[i].item.Invalidate(new InvalidateArgs(this, InvalidateType.SheetUpdated));
}
}
}

View file

@ -99,24 +99,27 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
}
}
public override async void OnInvalidate(InvalidateArgs invalidateType)
public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateArgs.Source != this
&& !RebuildLocked)
{
await Rebuild();
}
else if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.SheetUpdated))
else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
{
await Rebuild();
}
else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
{
await Rebuild();
}
else
{
base.OnInvalidate(invalidateType);
base.OnInvalidate(invalidateArgs);
}
}