diff --git a/PartPreviewWindow/ColorGradientWidget.cs b/PartPreviewWindow/ColorGradientWidget.cs index 2f12184fd..d74c154d5 100644 --- a/PartPreviewWindow/ColorGradientWidget.cs +++ b/PartPreviewWindow/ColorGradientWidget.cs @@ -1,115 +1,99 @@ -using System; +using MatterHackers.Agg; +using MatterHackers.Agg.UI; +using MatterHackers.GCodeVisualizer; +using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Diagnostics; -using System.Threading.Tasks; -using MatterHackers.Agg; -using MatterHackers.MatterControl.PrintQueue; -using MatterHackers.GCodeVisualizer; -using MatterHackers.Agg.UI; -using MatterHackers.MeshVisualizer; -using MatterHackers.VectorMath; -using System.IO; -using MatterHackers.Agg.PlatformAbstract; -using System.Text.RegularExpressions; namespace MatterHackers.MatterControl.PartPreviewWindow { + public class ColorGradientWidget : FlowLayoutWidget + { + public ColorGradientWidget(GCodeFile gcodeFileTest) + : base(FlowDirection.TopToBottom) + { + BackgroundColor = new RGBA_Bytes(0, 0, 0, 120); - public class ColorGradientWidget : FlowLayoutWidget - { + HashSet speeds = new HashSet(); + PrinterMachineInstruction previousInstruction = gcodeFileTest.Instruction(0); + for (int i = 1; i < gcodeFileTest.LineCount; i++) + { + PrinterMachineInstruction instruction = gcodeFileTest.Instruction(i); + if (instruction.EPosition > previousInstruction.EPosition && (instruction.Line.IndexOf('X') != -1 || instruction.Line.IndexOf('Y') != -1)) + { + speeds.Add((float)instruction.FeedRate); + } + previousInstruction = instruction; + } - public ColorGradientWidget(GCodeFile gcodeFileTest) - : base(FlowDirection.TopToBottom) - { + ExtrusionColors extrusionColors = new ExtrusionColors(); - BackgroundColor = new RGBA_Bytes(0, 0, 0, 120); + speeds.Select(speed => extrusionColors.GetColorForSpeed(speed)).ToArray(); - HashSet speeds = new HashSet(); - PrinterMachineInstruction previousInstruction = gcodeFileTest.Instruction(0); - for (int i = 1; i < gcodeFileTest.LineCount; i++) - { - PrinterMachineInstruction instruction = gcodeFileTest.Instruction(i); - if(instruction.EPosition > previousInstruction.EPosition && (instruction.Line.IndexOf('X') != -1 || instruction.Line.IndexOf('Y') != -1)) - { - speeds.Add((float)instruction.FeedRate); - } - previousInstruction = instruction; - } + float min = speeds.Min(); + float max = speeds.Max(); + int maxItems = Math.Min(7, speeds.Count()); - ExtrusionColors extrusionColors = new ExtrusionColors(); + int count = maxItems - 1; + float increment = (max - min) / count; + int index = 0; - speeds.Select(speed => extrusionColors.GetColorForSpeed(speed)).ToArray(); + int[] rangeValues; + if (speeds.Count < 8) + { + rangeValues = speeds.Select(s => (int)s).OrderBy(i => i).ToArray(); + } + else + { + rangeValues = Enumerable.Range(0, maxItems).Select(x => (int)(min + increment * index++)).ToArray(); + } - float min = speeds.Min(); - float max = speeds.Max(); - int maxItems = Math.Min(7, speeds.Count()); + RGBA_Bytes[] speedColors = rangeValues.OrderBy(s => s).Select(speed => extrusionColors.GetColorForSpeed(speed)).ToArray(); - int count = maxItems - 1; - float increment = (max - min) / count; - int index = 0; + for (int i = 0; i < speedColors.Length; i++) + { + RGBA_Bytes color = speedColors[i]; + int speed = rangeValues[i]; - int[] rangeValues; - if (speeds.Count < 8) - { - rangeValues = speeds.Select(s => (int)s).OrderBy(i => i).ToArray(); - } - else - { - rangeValues = Enumerable.Range(0, maxItems).Select(x => (int)(min + increment * index++)).ToArray(); - } + GuiWidget colorWidget = new GuiWidget(); + colorWidget.Width = 20; + colorWidget.Height = 20; + colorWidget.BackgroundColor = color; + colorWidget.Margin = new BorderDouble(2); + float feedRateToMMPerSecond = speed / 60; - RGBA_Bytes[] speedColors = rangeValues.OrderBy(s => s).Select(speed => extrusionColors.GetColorForSpeed(speed)).ToArray(); + ColorToSpeedWidget colorToSpeedWidget = new ColorToSpeedWidget(colorWidget, feedRateToMMPerSecond.ToString()); + this.AddChild(colorToSpeedWidget); + } - for (int i = 0; i < speedColors.Length; i++) - { - RGBA_Bytes color = speedColors[i]; - int speed = rangeValues[i]; + Margin = new BorderDouble(5, 5, 200, 50); + Margin *= TextWidget.GlobalPointSizeScaleRatio; + HAnchor |= Agg.UI.HAnchor.ParentLeft; + VAnchor = Agg.UI.VAnchor.ParentTop; + } - GuiWidget colorWidget = new GuiWidget(); - colorWidget.Width = 20; - colorWidget.Height = 20; - colorWidget.BackgroundColor = color; - colorWidget.Margin = new BorderDouble(2); - float feedRateToMMPerSecond = speed / 60; + public class ColorToSpeedWidget : FlowLayoutWidget + { + public string layerSpeed; + public GuiWidget speedColor; + public ColorToSpeedWidget(GuiWidget colorWidget, String speed) + : base(FlowDirection.LeftToRight) + { + Margin = new BorderDouble(2); - ColorToSpeedWidget colorToSpeedWidget = new ColorToSpeedWidget(colorWidget, feedRateToMMPerSecond.ToString()); - this.AddChild(colorToSpeedWidget); - - } + speedColor = colorWidget; + layerSpeed = speed + " mm\\s"; - Margin = new BorderDouble(5, 5, 200, 50); - HAnchor |= Agg.UI.HAnchor.ParentLeft; - VAnchor = Agg.UI.VAnchor.ParentTop; + colorWidget.Margin = new BorderDouble(left: 2); - } - - public class ColorToSpeedWidget : FlowLayoutWidget - { - public GuiWidget speedColor; - public string layerSpeed; + TextWidget speedTextBox = new TextWidget(layerSpeed, pointSize: 12); + speedTextBox.TextColor = RGBA_Bytes.White; + speedTextBox.VAnchor = VAnchor.ParentCenter; + speedTextBox.Margin = new BorderDouble(left: 2); - public ColorToSpeedWidget(GuiWidget colorWidget, String speed) - : base(FlowDirection.LeftToRight) - { - Margin = new BorderDouble(2); - - speedColor = colorWidget; - layerSpeed = speed + " mm\\s"; - - colorWidget.Margin = new BorderDouble(left: 2); - - TextWidget speedTextBox = new TextWidget(layerSpeed, pointSize: 12); - speedTextBox.TextColor = RGBA_Bytes.White; - speedTextBox.VAnchor = VAnchor.ParentCenter; - speedTextBox.Margin = new BorderDouble(left: 2); - - this.AddChild(colorWidget); - this.AddChild(speedTextBox); - } - } - - } - + this.AddChild(colorWidget); + this.AddChild(speedTextBox); + } + } + } } \ No newline at end of file diff --git a/PartPreviewWindow/ViewGcodeBasic.cs b/PartPreviewWindow/ViewGcodeBasic.cs index 828df9b03..4691efe3a 100644 --- a/PartPreviewWindow/ViewGcodeBasic.cs +++ b/PartPreviewWindow/ViewGcodeBasic.cs @@ -67,11 +67,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private CheckBox expandModelOptions; private CheckBox expandDisplayOptions; private CheckBox syncToPrint; - private CheckBox showSpeeds; + private CheckBox showSpeeds; private GuiWidget gcodeDisplayWidget; - private ColorGradientWidget gradient; + private ColorGradientWidget gradientWidget; private EventHandler unregisterEvents; private WindowMode windowMode; @@ -568,25 +568,23 @@ namespace MatterHackers.MatterControl.PartPreviewWindow // put in a show speed checkbox { - showSpeeds = new CheckBox(LocalizedString.Get("Speeds"), textColor: ActiveTheme.Instance.PrimaryTextColor); + showSpeeds = new CheckBox(LocalizedString.Get("Speeds"), textColor: ActiveTheme.Instance.PrimaryTextColor); showSpeeds.Checked = gcodeViewWidget.RenderSpeeds; - //showSpeeds.Checked = gradient.Visible; + //showSpeeds.Checked = gradient.Visible; showSpeeds.CheckedStateChanged += (sender, e) => { - - /* if (!showSpeeds.Checked) - { - gradient.Visible = false; - } - else - { - gradient.Visible = true; - }*/ - - gradient.Visible = showSpeeds.Checked; + /* if (!showSpeeds.Checked) + { + gradient.Visible = false; + } + else + { + gradient.Visible = true; + }*/ + + gradientWidget.Visible = showSpeeds.Checked; gcodeViewWidget.RenderSpeeds = showSpeeds.Checked; - }; layerInfoContainer.AddChild(showSpeeds); @@ -899,16 +897,13 @@ namespace MatterHackers.MatterControl.PartPreviewWindow && gcodeViewWidget.LoadedGCode != null && gcodeViewWidget.LoadedGCode.LineCount > 0) { - - CloseIfNotNull(gradient); - gradient = new ColorGradientWidget(gcodeViewWidget.LoadedGCode); - AddChild(gradient); - gradient.Visible = false; - - + CloseIfNotNull(gradientWidget); + gradientWidget = new ColorGradientWidget(gcodeViewWidget.LoadedGCode); + AddChild(gradientWidget); + gradientWidget.Visible = false; CreateOptionsContent(); - setGradientVisibility(); + setGradientVisibility(); buttonRightPanel.Visible = true; viewControlsToggle.Visible = true; @@ -936,9 +931,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow layerRenderRatioSlider.SecondValueChanged += new EventHandler(layerEndRenderRatioSlider_ValueChanged); AddChild(layerRenderRatioSlider); - - - SetSliderSizes(); // let's change the active layer so that it is set to the first layer with data @@ -951,20 +943,17 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } } - private void setGradientVisibility() - { - if (showSpeeds.Checked) - { - gradient.Visible = true; - } - else - { - gradient.Visible = false; - } - - - - } + private void setGradientVisibility() + { + if (showSpeeds.Checked) + { + gradientWidget.Visible = true; + } + else + { + gradientWidget.Visible = false; + } + } private void layerStartRenderRatioSlider_ValueChanged(object sender, EventArgs e) { diff --git a/StaticData/Icons/ColorGradient/blue.png b/StaticData/Icons/ColorGradient/blue.png deleted file mode 100644 index dd29c4a91..000000000 Binary files a/StaticData/Icons/ColorGradient/blue.png and /dev/null differ diff --git a/StaticData/Icons/ColorGradient/green.png b/StaticData/Icons/ColorGradient/green.png deleted file mode 100644 index 8689bf6f2..000000000 Binary files a/StaticData/Icons/ColorGradient/green.png and /dev/null differ diff --git a/StaticData/Icons/ColorGradient/lightblue.png b/StaticData/Icons/ColorGradient/lightblue.png deleted file mode 100644 index 897b0d239..000000000 Binary files a/StaticData/Icons/ColorGradient/lightblue.png and /dev/null differ diff --git a/StaticData/Icons/ColorGradient/orange.png b/StaticData/Icons/ColorGradient/orange.png deleted file mode 100644 index 8508a697e..000000000 Binary files a/StaticData/Icons/ColorGradient/orange.png and /dev/null differ diff --git a/StaticData/Icons/ColorGradient/red.png b/StaticData/Icons/ColorGradient/red.png deleted file mode 100644 index 37d259436..000000000 Binary files a/StaticData/Icons/ColorGradient/red.png and /dev/null differ diff --git a/StaticData/Icons/ColorGradient/teal.png b/StaticData/Icons/ColorGradient/teal.png deleted file mode 100644 index dee745d43..000000000 Binary files a/StaticData/Icons/ColorGradient/teal.png and /dev/null differ diff --git a/StaticData/Icons/ColorGradient/yellow.png b/StaticData/Icons/ColorGradient/yellow.png deleted file mode 100644 index f9a96034b..000000000 Binary files a/StaticData/Icons/ColorGradient/yellow.png and /dev/null differ