From de6b18db8226650cee9726c4694931bdc4b89fad Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Sun, 10 Jan 2021 23:49:28 -0800 Subject: Implement direcitonality UI --- grapher/Models/Charts/ChartState/ChartStateManager.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'grapher/Models/Charts') diff --git a/grapher/Models/Charts/ChartState/ChartStateManager.cs b/grapher/Models/Charts/ChartState/ChartStateManager.cs index 54d2e81..ff4fe54 100644 --- a/grapher/Models/Charts/ChartState/ChartStateManager.cs +++ b/grapher/Models/Charts/ChartState/ChartStateManager.cs @@ -52,7 +52,9 @@ namespace grapher.Models.Charts.ChartState if (settings.combineMagnitudes) { - if (settings.sensitivity.x != settings.sensitivity.y) + if (settings.sensitivity.x != settings.sensitivity.y || + settings.domainArgs.domainXY.x != settings.domainArgs.domainXY.y || + settings.rangeXY.x != settings.rangeXY.y) { chartState = XYOneGraphState; } -- cgit v1.2.3 From 65e10856e41dd6c75303808d7de0c322bac38df6 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Mon, 11 Jan 2021 01:17:14 -0800 Subject: Driver works --- grapher/Models/Charts/ChartState/XYOneGraphState.cs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'grapher/Models/Charts') diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs index 2b3cd9c..4a755b6 100644 --- a/grapher/Models/Charts/ChartState/XYOneGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs @@ -45,6 +45,10 @@ namespace grapher.Models.Charts.ChartState public override void Calculate(ManagedAccel accel, DriverSettings settings) { Calculator.CalculateCombinedDiffSens(Data, accel, settings, Calculator.SimulatedInputCombined); + Data.X.Clear(); + Data.Y.Clear(); + Calculator.Calculate(Data.X, accel, settings.sensitivity.x, Calculator.SimulatedInputX); + Calculator.Calculate(Data.Y, accel, settings.sensitivity.y, Calculator.SimulatedInputY); } } } -- cgit v1.2.3 From 784f7cab713640f4a13880ebc3c5abc10894d23c Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Tue, 12 Jan 2021 09:25:48 -0800 Subject: Many small tweaks --- grapher/Models/Charts/AccelCharts.cs | 8 -------- grapher/Models/Charts/ChartState/ChartState.cs | 2 ++ 2 files changed, 2 insertions(+), 8 deletions(-) (limited to 'grapher/Models/Charts') diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs index b7abb35..ea1345f 100644 --- a/grapher/Models/Charts/AccelCharts.cs +++ b/grapher/Models/Charts/AccelCharts.cs @@ -80,14 +80,6 @@ namespace grapher } } - public int TopChartHeight - { - get - { - return ChartState.SensitivityChart.Height; - } - } - private int FormBorderHeight { get; } private ChartState ChartState { get; set; } diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs index 0bb141e..269d269 100644 --- a/grapher/Models/Charts/ChartState/ChartState.cs +++ b/grapher/Models/Charts/ChartState/ChartState.cs @@ -77,12 +77,14 @@ namespace grapher.Models.Charts.ChartState public void ShowVelocityAndGain() { + SensitivityChart.SetHeight(Constants.SensitivityChartTogetherHeight); VelocityChart.Show(); GainChart.Show(); } public void HideVelocityAndGain() { + SensitivityChart.SetHeight(Constants.SensitivityChartAloneHeight); VelocityChart.Hide(); GainChart.Hide(); } -- cgit v1.2.3 From 8c55ca08881b59943bc9dda193107cc8a117cf69 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Mon, 18 Jan 2021 17:39:10 -0800 Subject: Refactor for new graph calculation method --- grapher/Models/Charts/AccelCharts.cs | 4 ++-- grapher/Models/Charts/ChartState/ChartState.cs | 5 ++--- .../Models/Charts/ChartState/ChartStateManager.cs | 11 +++++++---- grapher/Models/Charts/ChartState/CombinedState.cs | 20 +++++++++++--------- grapher/Models/Charts/ChartState/XYOneGraphState.cs | 8 +++++--- grapher/Models/Charts/ChartState/XYTwoGraphState.cs | 11 +++++++---- 6 files changed, 34 insertions(+), 25 deletions(-) (limited to 'grapher/Models/Charts') diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs index ea1345f..b9f7a8b 100644 --- a/grapher/Models/Charts/AccelCharts.cs +++ b/grapher/Models/Charts/AccelCharts.cs @@ -1,4 +1,5 @@ using grapher.Models.Calculations; +using grapher.Models.Calculations.Data; using grapher.Models.Charts; using grapher.Models.Charts.ChartState; using grapher.Models.Serialized; @@ -26,7 +27,6 @@ namespace grapher var estimatedX = new EstimatedPoints(); var estimatedY = new EstimatedPoints(); SetupCharts(sensitivityChart, velocityChart, gainChart, estimated, estimatedX, estimatedY); - var accelData = new AccelData(estimated, estimatedX, estimatedY); ChartStateManager = new ChartStateManager(sensitivityChart, velocityChart, gainChart, accelData, accelCalculator); ContainingForm = form; @@ -56,7 +56,7 @@ namespace grapher private Button WriteButton { get; } - public AccelData AccelData + public IAccelData AccelData { get { diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs index 269d269..2a0325c 100644 --- a/grapher/Models/Charts/ChartState/ChartState.cs +++ b/grapher/Models/Charts/ChartState/ChartState.cs @@ -1,4 +1,5 @@ using grapher.Models.Calculations; +using grapher.Models.Calculations.Data; using grapher.Models.Serialized; using System; using System.Collections.Generic; @@ -15,13 +16,11 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChart, - AccelData accelData, AccelCalculator calculator) { SensitivityChart = sensitivityChart; VelocityChart = velocityChart; GainChart = gainChart; - Data = accelData; Calculator = calculator; TwoDotsPerGraph = false; } @@ -32,7 +31,7 @@ namespace grapher.Models.Charts.ChartState public ChartXY GainChart { get; } - public AccelData Data { get; } + public IAccelData Data { get; protected set; } public AccelCalculator Calculator { get; } diff --git a/grapher/Models/Charts/ChartState/ChartStateManager.cs b/grapher/Models/Charts/ChartState/ChartStateManager.cs index ff4fe54..9ed54e1 100644 --- a/grapher/Models/Charts/ChartState/ChartStateManager.cs +++ b/grapher/Models/Charts/ChartState/ChartStateManager.cs @@ -14,21 +14,24 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChat, - AccelData accelData, - AccelCalculator accelCalculator) + AccelCalculator accelCalculator, + EstimatedPoints combined, + EstimatedPoints xPoints, + EstimatedPoints yPoints) { CombinedState = new CombinedState( sensitivityChart, velocityChart, gainChat, - accelData, + combined, accelCalculator); XYOneGraphState = new XYOneGraphState( sensitivityChart, velocityChart, gainChat, - accelData, + xPoints, + yPoints, accelCalculator); XYTwoGraphState = new XYTwoGraphState( diff --git a/grapher/Models/Charts/ChartState/CombinedState.cs b/grapher/Models/Charts/ChartState/CombinedState.cs index 9eadb87..7275d16 100644 --- a/grapher/Models/Charts/ChartState/CombinedState.cs +++ b/grapher/Models/Charts/ChartState/CombinedState.cs @@ -1,4 +1,5 @@ using grapher.Models.Calculations; +using grapher.Models.Calculations.Data; using grapher.Models.Serialized; namespace grapher.Models.Charts.ChartState @@ -9,15 +10,16 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChart, - AccelData accelData, + EstimatedPoints points, AccelCalculator accelCalculator) : base( sensitivityChart, velocityChart, gainChart, - accelData, accelCalculator) - { } + { + Data = new AccelDataCombined(points, accelCalculator); + } public override void Activate() { @@ -37,16 +39,16 @@ namespace grapher.Models.Charts.ChartState public override void Bind() { - SensitivityChart.Bind(Data.Combined.AccelPoints); - VelocityChart.Bind(Data.Combined.VelocityPoints); - GainChart.Bind(Data.Combined.GainPoints); - SensitivityChart.SetMinMax(Data.Combined.MinAccel, Data.Combined.MaxAccel); - GainChart.SetMinMax(Data.Combined.MinGain, Data.Combined.MaxGain); + SensitivityChart.Bind(Data.X.AccelPoints); + VelocityChart.Bind(Data.X.VelocityPoints); + GainChart.Bind(Data.X.GainPoints); + SensitivityChart.SetMinMax(Data.X.MinAccel, Data.X.MaxAccel); + GainChart.SetMinMax(Data.X.MinGain, Data.X.MaxGain); } public override void Calculate(ManagedAccel accel, DriverSettings settings) { - Calculator.Calculate(Data.Combined, accel, settings.sensitivity.x, Calculator.SimulatedInputCombined); + Calculator.Calculate(Data.X, accel, settings.sensitivity.x, Calculator.SimulatedInputCombined); } } } diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs index 4a755b6..14d8850 100644 --- a/grapher/Models/Charts/ChartState/XYOneGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs @@ -1,4 +1,5 @@ using grapher.Models.Calculations; +using grapher.Models.Calculations.Data; using grapher.Models.Serialized; namespace grapher.Models.Charts.ChartState @@ -9,15 +10,16 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChart, - AccelData accelData, + EstimatedPoints xPoints, + EstimatedPoints yPoints, AccelCalculator accelCalculator) : base( sensitivityChart, velocityChart, gainChart, - accelData, accelCalculator) { + Data = new AccelDataXYDirectional(xPoints, yPoints, accelCalculator); TwoDotsPerGraph = true; } @@ -30,7 +32,7 @@ namespace grapher.Models.Charts.ChartState public override void MakeDots(double x, double y, double timeInMs) { - Data.CalculateDotsCombinedDiffSens(x, y, timeInMs, Settings); + Data.CalculateDots(x, y, timeInMs); } public override void Bind() diff --git a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs index 732ea3c..7dc2810 100644 --- a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs @@ -1,4 +1,5 @@ using grapher.Models.Calculations; +using grapher.Models.Calculations.Data; using grapher.Models.Serialized; using System; @@ -10,15 +11,17 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChart, - AccelData accelData, + EstimatedPoints xPoints, + EstimatedPoints yPoints, AccelCalculator accelCalculator) : base( sensitivityChart, velocityChart, gainChart, - accelData, accelCalculator) - { } + { + Data = new AccelDataXYComponential(xPoints, yPoints, accelCalculator); + } public override DriverSettings Settings { get; set; } @@ -35,7 +38,7 @@ namespace grapher.Models.Charts.ChartState public override void MakeDots(double x, double y, double timeInMs) { - Data.CalculateDotsXY(x, y, timeInMs); + Data.CalculateDots(x, y, timeInMs); } public override void Bind() -- cgit v1.2.3 From 4faf0007c7c551fae8fd25fc7a98767070cb9244 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Mon, 18 Jan 2021 22:02:29 -0800 Subject: Directional works --- grapher/Models/Charts/AccelCharts.cs | 11 ++++++++--- grapher/Models/Charts/ChartState/ChartState.cs | 10 ++++++++-- .../Models/Charts/ChartState/ChartStateManager.cs | 3 ++- grapher/Models/Charts/ChartState/CombinedState.cs | 10 ---------- .../Models/Charts/ChartState/XYOneGraphState.cs | 23 ++++++---------------- .../Models/Charts/ChartState/XYTwoGraphState.cs | 11 ----------- 6 files changed, 24 insertions(+), 44 deletions(-) (limited to 'grapher/Models/Charts') diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs index b9f7a8b..2369432 100644 --- a/grapher/Models/Charts/AccelCharts.cs +++ b/grapher/Models/Charts/AccelCharts.cs @@ -2,9 +2,7 @@ using grapher.Models.Calculations.Data; using grapher.Models.Charts; using grapher.Models.Charts.ChartState; -using grapher.Models.Serialized; using System; -using System.Drawing; using System.Windows.Forms; namespace grapher @@ -27,7 +25,14 @@ namespace grapher var estimatedX = new EstimatedPoints(); var estimatedY = new EstimatedPoints(); SetupCharts(sensitivityChart, velocityChart, gainChart, estimated, estimatedX, estimatedY); - ChartStateManager = new ChartStateManager(sensitivityChart, velocityChart, gainChart, accelData, accelCalculator); + ChartStateManager = new ChartStateManager( + sensitivityChart, + velocityChart, + gainChart, + accelCalculator, + estimated, + estimatedY, + estimatedX); ContainingForm = form; EnableVelocityAndGain = enableVelocityAndGain; diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs index 2a0325c..5a86713 100644 --- a/grapher/Models/Charts/ChartState/ChartState.cs +++ b/grapher/Models/Charts/ChartState/ChartState.cs @@ -39,13 +39,19 @@ namespace grapher.Models.Charts.ChartState internal bool TwoDotsPerGraph { get; set; } - public abstract void MakeDots(double x, double y, double timeInMs); + public virtual void MakeDots(double x, double y, double timeInMs) + { + Data.CalculateDots(x, y, timeInMs); + } public abstract void Bind(); public abstract void Activate(); - public abstract void Calculate(ManagedAccel accel, DriverSettings settings); + public virtual void Calculate(ManagedAccel accel, DriverSettings settings) + { + Data.CreateGraphData(accel, settings); + } public void Redraw() { diff --git a/grapher/Models/Charts/ChartState/ChartStateManager.cs b/grapher/Models/Charts/ChartState/ChartStateManager.cs index 9ed54e1..3d4bbec 100644 --- a/grapher/Models/Charts/ChartState/ChartStateManager.cs +++ b/grapher/Models/Charts/ChartState/ChartStateManager.cs @@ -38,7 +38,8 @@ namespace grapher.Models.Charts.ChartState sensitivityChart, velocityChart, gainChat, - accelData, + xPoints, + yPoints, accelCalculator); } diff --git a/grapher/Models/Charts/ChartState/CombinedState.cs b/grapher/Models/Charts/ChartState/CombinedState.cs index 7275d16..3511cec 100644 --- a/grapher/Models/Charts/ChartState/CombinedState.cs +++ b/grapher/Models/Charts/ChartState/CombinedState.cs @@ -32,11 +32,6 @@ namespace grapher.Models.Charts.ChartState GainChart.ClearSecondDots(); } - public override void MakeDots(double x, double y, double timeInMs) - { - Data.CalculateDots(x, y, timeInMs); - } - public override void Bind() { SensitivityChart.Bind(Data.X.AccelPoints); @@ -45,10 +40,5 @@ namespace grapher.Models.Charts.ChartState SensitivityChart.SetMinMax(Data.X.MinAccel, Data.X.MaxAccel); GainChart.SetMinMax(Data.X.MinGain, Data.X.MaxGain); } - - public override void Calculate(ManagedAccel accel, DriverSettings settings) - { - Calculator.Calculate(Data.X, accel, settings.sensitivity.x, Calculator.SimulatedInputCombined); - } } } diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs index 14d8850..34e9070 100644 --- a/grapher/Models/Charts/ChartState/XYOneGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs @@ -19,10 +19,13 @@ namespace grapher.Models.Charts.ChartState gainChart, accelCalculator) { - Data = new AccelDataXYDirectional(xPoints, yPoints, accelCalculator); + DataDirectional = new AccelDataXYDirectional(xPoints, yPoints, accelCalculator); + Data = DataDirectional; TwoDotsPerGraph = true; } + private AccelDataXYDirectional DataDirectional { get; } + public override void Activate() { SensitivityChart.SetCombined(); @@ -30,27 +33,13 @@ namespace grapher.Models.Charts.ChartState GainChart.SetCombined(); } - public override void MakeDots(double x, double y, double timeInMs) - { - Data.CalculateDots(x, y, timeInMs); - } - public override void Bind() { SensitivityChart.BindXYCombined(Data.X.AccelPoints, Data.Y.AccelPoints); VelocityChart.BindXYCombined(Data.X.VelocityPoints, Data.Y.VelocityPoints); GainChart.BindXYCombined(Data.X.GainPoints, Data.Y.GainPoints); - SensitivityChart.SetMinMax(Data.Combined.MinAccel, Data.Combined.MaxAccel); - GainChart.SetMinMax(Data.Combined.MinGain, Data.Combined.MaxGain); - } - - public override void Calculate(ManagedAccel accel, DriverSettings settings) - { - Calculator.CalculateCombinedDiffSens(Data, accel, settings, Calculator.SimulatedInputCombined); - Data.X.Clear(); - Data.Y.Clear(); - Calculator.Calculate(Data.X, accel, settings.sensitivity.x, Calculator.SimulatedInputX); - Calculator.Calculate(Data.Y, accel, settings.sensitivity.y, Calculator.SimulatedInputY); + SensitivityChart.SetMinMax(DataDirectional.SensitivityMin, DataDirectional.SensitivityMax); + GainChart.SetMinMax(DataDirectional.GainMin, DataDirectional.GainMax); } } } diff --git a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs index 7dc2810..5b6c2b8 100644 --- a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs @@ -36,11 +36,6 @@ namespace grapher.Models.Charts.ChartState GainChart.ClearSecondDots(); } - public override void MakeDots(double x, double y, double timeInMs) - { - Data.CalculateDots(x, y, timeInMs); - } - public override void Bind() { SensitivityChart.BindXY(Data.X.AccelPoints, Data.Y.AccelPoints); @@ -50,11 +45,5 @@ namespace grapher.Models.Charts.ChartState SensitivityChart.SetMinMaxXY(Data.X.MinAccel, Data.X.MaxAccel, Data.Y.MinAccel, Data.Y.MaxAccel); GainChart.SetMinMaxXY(Data.X.MinGain, Data.X.MaxGain, Data.Y.MinGain, Data.Y.MaxGain); } - - public override void Calculate(ManagedAccel accel, DriverSettings settings) - { - Calculator.Calculate(Data.X, accel, settings.sensitivity.x, Calculator.SimulatedInputX); - Calculator.Calculate(Data.Y, accel, settings.sensitivity.y, Calculator.SimulatedInputY); - } } } -- cgit v1.2.3 From 9c2be5743fb44e8a68084ac0bd15c02f6cce637a Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Wed, 20 Jan 2021 00:30:50 -0800 Subject: Final graph fidelity tweaks and fixes --- grapher/Models/Charts/ChartXY.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'grapher/Models/Charts') diff --git a/grapher/Models/Charts/ChartXY.cs b/grapher/Models/Charts/ChartXY.cs index 553ab3e..bd80ea2 100644 --- a/grapher/Models/Charts/ChartXY.cs +++ b/grapher/Models/Charts/ChartXY.cs @@ -244,8 +244,8 @@ namespace grapher ChartX.ChartAreas[0].AxisY.Maximum = maxX * (1 + VerticalMargin); VerifyRange(minY, maxY); - ChartX.ChartAreas[0].AxisY.Minimum = minY * (1 - VerticalMargin); - ChartX.ChartAreas[0].AxisY.Maximum = maxY * (1 + VerticalMargin); + ChartY.ChartAreas[0].AxisY.Minimum = minY * (1 - VerticalMargin); + ChartY.ChartAreas[0].AxisY.Maximum = maxY * (1 + VerticalMargin); } public void SetCombined() -- cgit v1.2.3