diff options
author | Tiago Conceição <Tiago_caza@hotmail.com> | 2020-10-01 18:07:19 +0300 |
---|---|---|
committer | Tiago Conceição <Tiago_caza@hotmail.com> | 2020-10-01 18:07:19 +0300 |
commit | 6d042d7165e7189cfea6090d3eb7319dbd0954ee (patch) | |
tree | d8d1940fe4c38c9f8d1fc49d15acea809ec0a84c /UVtools.WPF/UserSettings.cs | |
parent | 7ac20d7afae9f1f8d8f80a71534c0487c149c76c (diff) |
v0.8.4.0v0.8.4.0
* (Add) Tool: Arithmetic operations
* (Add) Allow convert chitubox zip to cbddlp, ctb, photon, phz, pws, pw0, cws, zcodex
* (Add) When using filenames containing "bene4_mono" and when converting to cws it will use the GRAY2RGB encoding (#67)
* (Add) Hint on how to use layer re-height tool when it fails to launch
* (Add) PrusaSlicer Printer: Creality LD-006
* (Add) PrusaSlicer Printer: EPAX E6 Mono
* (Add) PrusaSlicer Printer: EPAX E10 Mono
* (Add) PrusaSlicer Printer: EPAX X1K 2K Mono
* (Add) PrusaSlicer Printer: Elegoo Mars C
* (Add) PrusaSlicer Printer: Longer 3D Orange4K
* (Add) PrusaSlicer Printer: Phrozen Shuffle XL Lite
* (Add) PrusaSlicer Printer: Phrozen Shuffle 16
* (Add) PrusaSlicer Printer: Phrozen Sonic 4K
* (Add) PrusaSlicer Printer: Phrozen Sonic Mighty 4K
* (Add) PrusaSlicer Printer: Voxelab Proxima
* (Add) PrusaSlicer Printer: QIDI S-Box
* (Fix) PrusaSlicer Printer: Elegoo Saturn - name and resolution
* (Fix) PrusaSlicer Printer: AnyCubic Photon S - display width/height
* (Fix) PrusaSlicer Printer: Epax X10 4K Mono - Y Resolution
* (Fix) PrusaSlicer Printer: EPAX X133 4K Mono - display width/height
* (Fix) PrusaSlicer Printer: Phrozen Shuffle Lite - display width/height
* (Fix) All PrusaSlicer Printers were reviewed and some bugs were fixed
* (Fix) Chitubox 3D preview when use files converted with UVtools (#68)
* (Fix) Overhangs: False-positives when previous or current layer as draker pixels, it now threshold pixels before proceed (#64)
* (Change) Tools: Placed "Threshold" menu item after "Morph"
Diffstat (limited to 'UVtools.WPF/UserSettings.cs')
-rw-r--r-- | UVtools.WPF/UserSettings.cs | 73 |
1 files changed, 68 insertions, 5 deletions
diff --git a/UVtools.WPF/UserSettings.cs b/UVtools.WPF/UserSettings.cs index 4ada331..1607311 100644 --- a/UVtools.WPF/UserSettings.cs +++ b/UVtools.WPF/UserSettings.cs @@ -25,6 +25,8 @@ namespace UVtools.WPF #endregion #region Sub classes + + #region General [Serializable] public sealed class GeneralUserSettings : ReactiveObject { @@ -119,7 +121,9 @@ namespace UVtools.WPF return MemberwiseClone() as GeneralUserSettings; } } + #endregion + #region Layer Preview [Serializable] public sealed class LayerPreviewUserSettings : ReactiveObject { @@ -138,10 +142,12 @@ namespace UVtools.WPF private Color _nextLayerDifferenceColor = new Color(255, 0, 255, 255); private Color _bothLayerDifferenceColor = new Color(255, 255, 0, 0); private bool _showLayerDifference = false; - private Color _islandColor = new Color(255, 255,215, 0); - private Color _islandHighlightColor = new Color(255, 255,255, 0); - private Color _resinTrapColor = new Color(255, 244, 164, 96); - private Color _resinTrapHighlightColor = new Color(255, 255, 165, 0); + private Color _islandColor = new Color(255, 255, 255, 0); + private Color _islandHighlightColor = new Color(255, 255, 215, 0); + private Color _overhangColor = new Color(255, 255, 105, 180); + private Color _overhangHighlightColor = new Color(255, 255, 20, 147); + private Color _resinTrapColor = new Color(255, 255, 165, 0); + private Color _resinTrapHighlightColor = new Color(255, 244, 164, 96); private Color _touchingBoundsColor = new Color(255, 255, 0, 0); private Color _crosshairColor = new Color(255, 255, 0, 0); private bool _zoomToFitPrintVolumeBounds = true; @@ -335,7 +341,7 @@ namespace UVtools.WPF public SolidColorBrush IslandBrush { get => new SolidColorBrush(_islandColor.ToAvalonia()); - set => IslandHighlightColor = new Color(value); + set => IslandColor = new Color(value); } public Color IslandHighlightColor @@ -355,6 +361,40 @@ namespace UVtools.WPF set => IslandHighlightColor = new Color(value); } + public Color OverhangColor + { + get => _overhangColor; + set + { + this.RaiseAndSetIfChanged(ref _overhangColor, value); + this.RaisePropertyChanged(nameof(OverhangBrush)); + } + } + + [XmlIgnore] + public SolidColorBrush OverhangBrush + { + get => new SolidColorBrush(_overhangColor.ToAvalonia()); + set => OverhangColor = new Color(value); + } + + public Color OverhangHighlightColor + { + get => _overhangHighlightColor; + set + { + this.RaiseAndSetIfChanged(ref _overhangHighlightColor, value); + this.RaisePropertyChanged(nameof(OverhangHighlightBrush)); + } + } + + [XmlIgnore] + public SolidColorBrush OverhangHighlightBrush + { + get => new SolidColorBrush(_overhangHighlightColor.ToAvalonia()); + set => OverhangHighlightColor = new Color(value); + } + public Color ResinTrapColor { get => _resinTrapColor; @@ -482,13 +522,16 @@ namespace UVtools.WPF } } + #endregion + #region Issues [Serializable] public sealed class IssuesUserSettings : ReactiveObject { private bool _computeIssuesOnLoad = false; private bool _computeIssuesOnClickTab = true; private bool _computeIslands = true; + private bool _computeOverhangs = true; private bool _computeResinTraps = true; private bool _computeTouchingBounds = true; private bool _computeEmptyLayers = true; @@ -498,6 +541,8 @@ namespace UVtools.WPF private byte _islandRequiredPixelBrightnessToProcessCheck = 1; private byte _islandRequiredPixelsToSupport = 10; private byte _islandRequiredPixelBrightnessToSupport = 150; + private bool _overhangIndependentFromIslands = true; + private byte _overhangErodeIterations = 49; private byte _resinTrapBinaryThreshold = 127; private byte _resinTrapRequiredAreaToProcessCheck = 17; private byte _resinTrapRequiredBlackPixelsToDrain = 10; @@ -521,6 +566,12 @@ namespace UVtools.WPF set => this.RaiseAndSetIfChanged(ref _computeIslands, value); } + public bool ComputeOverhangs + { + get => _computeOverhangs; + set => this.RaiseAndSetIfChanged(ref _computeOverhangs, value); + } + public bool ComputeResinTraps { get => _computeResinTraps; @@ -575,7 +626,18 @@ namespace UVtools.WPF set => this.RaiseAndSetIfChanged(ref _islandRequiredPixelBrightnessToSupport, value); } + public bool OverhangIndependentFromIslands + { + get => _overhangIndependentFromIslands; + set => this.RaiseAndSetIfChanged(ref _overhangIndependentFromIslands, value); + } + public byte OverhangErodeIterations + { + get => _overhangErodeIterations; + set => this.RaiseAndSetIfChanged(ref _overhangErodeIterations, value); + } + public byte ResinTrapBinaryThreshold { get => _resinTrapBinaryThreshold; @@ -606,6 +668,7 @@ namespace UVtools.WPF } } + #endregion [Serializable] public sealed class PixelEditorUserSettings : ReactiveObject |