Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sn4k3/UVtools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Conceição <Tiago_caza@hotmail.com>2020-10-01 18:07:19 +0300
committerTiago Conceição <Tiago_caza@hotmail.com>2020-10-01 18:07:19 +0300
commit6d042d7165e7189cfea6090d3eb7319dbd0954ee (patch)
treed8d1940fe4c38c9f8d1fc49d15acea809ec0a84c /UVtools.WPF/UserSettings.cs
parent7ac20d7afae9f1f8d8f80a71534c0487c149c76c (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.cs73
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