public override async void OnInvalidate(InvalidateArgs invalidateArgs) { additonalInvalidate = invalidateArgs.InvalidateType; if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children) || invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix) || invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh)) && invalidateArgs.Source != this && !RebuildLocked) { await Rebuild(); } else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this)) { await Rebuild(); } else if (SheetObject3D.NeedsRebuild(this, invalidateArgs)) { 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(invalidateArgs); additonalInvalidate = InvalidateType.None; }
public override async void OnInvalidate(InvalidateArgs invalidateType) { 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.HasFlag(InvalidateType.Properties) && invalidateType.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)) { cacheThisMatrix = Matrix4X4.Identity; base.OnInvalidate(invalidateType); } base.OnInvalidate(invalidateType); }
public override void OnInvalidate(InvalidateArgs invalidateType) { if ((invalidateType.InvalidateType == InvalidateType.Content || invalidateType.InvalidateType == InvalidateType.Matrix || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildLocked) { Rebuild(null); } else if (invalidateType.InvalidateType == InvalidateType.Color) { var sourceItem = OperationSourceObject3D.GetOrCreateSourceContainer(this).Children.FirstOrDefault(); foreach (var item in Children) { if (item != sourceItem) { item.Color = sourceItem.Color; } } base.OnInvalidate(invalidateType); } else if (invalidateType.InvalidateType == InvalidateType.Properties && invalidateType.Source == this) { Rebuild(null); } else { base.OnInvalidate(invalidateType); } }
public override void OnInvalidate(InvalidateArgs invalidateType) { if ((invalidateType.InvalidateType == InvalidateType.Content || invalidateType.InvalidateType == InvalidateType.Matrix || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildLocked) { Rebuild(null); } else if (invalidateType.InvalidateType == InvalidateType.Properties && invalidateType.Source == this) { Rebuild(null); } else if ((invalidateType.InvalidateType == InvalidateType.Properties || invalidateType.InvalidateType == InvalidateType.Matrix || invalidateType.InvalidateType == InvalidateType.Mesh || invalidateType.InvalidateType == InvalidateType.Content)) { cacheThisMatrix = Matrix4X4.Identity; base.OnInvalidate(invalidateType); } else { base.OnInvalidate(invalidateType); } }
public override async void OnInvalidate(InvalidateArgs invalidateType) { if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this) { await Rebuild(); } base.OnInvalidate(invalidateType); }
public override void OnInvalidate(InvalidateArgs invalidateType) { if (invalidateType.InvalidateType == InvalidateType.Properties && invalidateType.Source == this) { Rebuild(null); } else { base.OnInvalidate(invalidateType); } }
public override async void OnInvalidate(InvalidateArgs invalidateArgs) { if (invalidateArgs.InvalidateType.HasFlag(InvalidateType.Image) && invalidateArgs.Source != this && !RebuildLocked) { // try to pick the best processing mode if (SourceImage.HasTransparency) { AnalysisType = AnalysisTypes.Transparency; Histogram.RangeStart = 0; Histogram.RangeEnd = .9; } else if (ColorDetected(SourceImage, out double hue)) { AnalysisType = AnalysisTypes.Colors; Histogram.RangeStart = Math.Max(0, hue - .2); Histogram.RangeEnd = Math.Min(1, hue + .2); } else { AnalysisType = AnalysisTypes.Intensity; Histogram.RangeStart = 0; Histogram.RangeEnd = .9; } if (AnalysisType != AnalysisTypes.Transparency) { Histogram.BuildHistogramFromImage(SourceImage, AnalysisType); var _ = Image; // call this to make sure it is built Histogram.RebuildAlphaImage(SourceImage, alphaImage, Image, AnalysisType); } else { Image?.CopyFrom(SourceImage); } await Rebuild(); this.ReloadEditorPannel(); } else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this)) { await Rebuild(); } else if (SheetObject3D.NeedsRebuild(this, invalidateArgs)) { await Rebuild(); } base.OnInvalidate(invalidateArgs); }
public override async void OnInvalidate(InvalidateArgs invalidateArgs) { if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this)) { await Rebuild(); } else if (SheetObject3D.NeedsRebuild(this, invalidateArgs)) { await Rebuild(); } else { base.OnInvalidate(invalidateArgs); } }
public override async void OnInvalidate(InvalidateArgs invalidateType) { if (invalidateType.InvalidateType.HasFlag(InvalidateType.Image) && invalidateType.Source != this && !RebuildLocked) { await Rebuild(); } else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this) { UpdateHistogramDisplay(); await Rebuild(); } base.OnInvalidate(invalidateType); }
public override async void OnInvalidate(InvalidateArgs invalidateArgs) { if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children) || invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix) || invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh)) && invalidateArgs.Source != this && !RebuildLocked) { await Rebuild(); } else if (invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this) { await Rebuild(); } base.OnInvalidate(invalidateArgs); }
public override async void OnInvalidate(InvalidateArgs eventArgs) { if ((eventArgs.InvalidateType.HasFlag(InvalidateType.Path) || eventArgs.InvalidateType.HasFlag(InvalidateType.Children)) && eventArgs.Source != this && !RebuildLocked) { await Rebuild(); } else if (eventArgs.InvalidateType.HasFlag(InvalidateType.Properties) && eventArgs.Source == this) { await Rebuild(); } else { base.OnInvalidate(eventArgs); } }
public override void OnInvalidate(InvalidateArgs invalidateType) { var firstChild = this.Children.FirstOrDefault(); if (firstChild != null) { if (invalidateType.InvalidateType == InvalidateType.Color) { this.Color = firstChild.Color; } if (invalidateType.InvalidateType == InvalidateType.Material) { this.MaterialIndex = firstChild.MaterialIndex; } } base.OnInvalidate(invalidateType); }
public override void OnInvalidate(InvalidateArgs invalidateType) { if ((invalidateType.InvalidateType == InvalidateType.Content || invalidateType.InvalidateType == InvalidateType.Matrix || invalidateType.InvalidateType == InvalidateType.Path) && invalidateType.Source != this && !RebuildLocked) { Rebuild(null); } else if (invalidateType.InvalidateType == InvalidateType.Properties && invalidateType.Source == this) { Rebuild(null); } else { base.OnInvalidate(invalidateType); } }
public override void OnInvalidate(InvalidateArgs invalidateType) { if (invalidateType.InvalidateType == InvalidateType.Image && invalidateType.Source != this && !RebuildLocked) { Rebuild(null); } else if (invalidateType.InvalidateType == InvalidateType.Properties && invalidateType.Source == this) { UpdateHistogramDisplay(); Rebuild(null); base.OnInvalidate(invalidateType); } else { base.OnInvalidate(invalidateType); } }
public override async void OnInvalidate(InvalidateArgs invalidateType) { 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.HasFlag(InvalidateType.Properties) && invalidateType.Source == this) { await Rebuild(); } else { // and also always pass back the actual type base.OnInvalidate(invalidateType); } }
public override void OnInvalidate(InvalidateArgs invalidateArgs) { 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.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this)) { Rebuild(); } else if (SheetObject3D.NeedsRebuild(this, invalidateArgs)) { Rebuild(); } else { base.OnInvalidate(invalidateArgs); } }
public override async void OnInvalidate(InvalidateArgs invalidateType) { // 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.Color) || invalidateType.InvalidateType.HasFlag(InvalidateType.OutputType)) && invalidateType.Source != this && !RebuildLocked) { await Rebuild(); } else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateType.Source == this) { await Rebuild(); } else { base.OnInvalidate(invalidateType); } }