summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2020-09-21 00:08:19 -0700
committerJacob Palecki <[email protected]>2020-09-21 00:08:19 -0700
commitba642cd8c8e63ec3778fa17ecbcd7964074aaba1 (patch)
treebb7baaf0e076b64538b7d408cec47045c63a3a8a
parentAttempt to get separate x/y working (diff)
downloadrawaccel-ba642cd8c8e63ec3778fa17ecbcd7964074aaba1.tar.xz
rawaccel-ba642cd8c8e63ec3778fa17ecbcd7964074aaba1.zip
separate x/y mostly works
-rw-r--r--grapher/Form1.Designer.cs191
-rw-r--r--grapher/Models/AccelGUI.cs2
-rw-r--r--grapher/Models/Calculations/AccelCalculator.cs8
-rw-r--r--grapher/Models/Calculations/AccelChartData.cs4
-rw-r--r--grapher/Models/Calculations/AccelData.cs16
-rw-r--r--grapher/Models/Charts/AccelCharts.cs1
-rw-r--r--grapher/Models/Charts/ChartState/ChartState.cs10
-rw-r--r--grapher/Models/Charts/ChartState/XYOneGraphState.cs18
-rw-r--r--grapher/Models/Charts/ChartXY.cs26
9 files changed, 165 insertions, 111 deletions
diff --git a/grapher/Form1.Designer.cs b/grapher/Form1.Designer.cs
index d8133e5..535ee15 100644
--- a/grapher/Form1.Designer.cs
+++ b/grapher/Form1.Designer.cs
@@ -35,36 +35,39 @@ namespace grapher
System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title();
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
- System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series6 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataVisualization.Charting.Series series7 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataVisualization.Charting.Series series8 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Title title2 = new System.Windows.Forms.DataVisualization.Charting.Title();
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea3 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend3 = new System.Windows.Forms.DataVisualization.Charting.Legend();
- System.Windows.Forms.DataVisualization.Charting.Series series7 = new System.Windows.Forms.DataVisualization.Charting.Series();
- System.Windows.Forms.DataVisualization.Charting.Series series8 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series9 = new System.Windows.Forms.DataVisualization.Charting.Series();
- System.Windows.Forms.DataVisualization.Charting.Title title3 = new System.Windows.Forms.DataVisualization.Charting.Title();
- System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
- System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series10 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series11 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series12 = new System.Windows.Forms.DataVisualization.Charting.Series();
- System.Windows.Forms.DataVisualization.Charting.Title title4 = new System.Windows.Forms.DataVisualization.Charting.Title();
- System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea5 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
- System.Windows.Forms.DataVisualization.Charting.Legend legend5 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+ System.Windows.Forms.DataVisualization.Charting.Title title3 = new System.Windows.Forms.DataVisualization.Charting.Title();
+ System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+ System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series13 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series14 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series15 = new System.Windows.Forms.DataVisualization.Charting.Series();
- System.Windows.Forms.DataVisualization.Charting.Title title5 = new System.Windows.Forms.DataVisualization.Charting.Title();
- System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea6 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
- System.Windows.Forms.DataVisualization.Charting.Legend legend6 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+ System.Windows.Forms.DataVisualization.Charting.Title title4 = new System.Windows.Forms.DataVisualization.Charting.Title();
+ System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea5 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+ System.Windows.Forms.DataVisualization.Charting.Legend legend5 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series16 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series17 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series18 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataVisualization.Charting.Title title5 = new System.Windows.Forms.DataVisualization.Charting.Title();
+ System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea6 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+ System.Windows.Forms.DataVisualization.Charting.Legend legend6 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+ System.Windows.Forms.DataVisualization.Charting.Series series19 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataVisualization.Charting.Series series20 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataVisualization.Charting.Series series21 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Title title6 = new System.Windows.Forms.DataVisualization.Charting.Title();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RawAcceleration));
this.AccelerationChart = new System.Windows.Forms.DataVisualization.Charting.Chart();
@@ -184,9 +187,15 @@ namespace grapher
series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series3.Legend = "Legend1";
series3.Name = "Y: Accelerated Sensitivity";
+ series4.ChartArea = "ChartArea1";
+ series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+ series4.IsVisibleInLegend = false;
+ series4.Legend = "Legend1";
+ series4.Name = "Y - Last Mouse Move";
this.AccelerationChart.Series.Add(series1);
this.AccelerationChart.Series.Add(series2);
this.AccelerationChart.Series.Add(series3);
+ this.AccelerationChart.Series.Add(series4);
this.AccelerationChart.Size = new System.Drawing.Size(698, 328);
this.AccelerationChart.TabIndex = 0;
this.AccelerationChart.Text = "Sensitivity";
@@ -399,22 +408,28 @@ namespace grapher
this.VelocityChart.Legends.Add(legend2);
this.VelocityChart.Location = new System.Drawing.Point(482, 334);
this.VelocityChart.Name = "VelocityChart";
- series4.ChartArea = "ChartArea1";
- series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
- series4.Legend = "Legend1";
- series4.Name = "Output Velocity";
series5.ChartArea = "ChartArea1";
- series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
- series5.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
+ series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series5.Legend = "Legend1";
- series5.Name = "Last Mouse Move";
+ series5.Name = "Output Velocity";
series6.ChartArea = "ChartArea1";
- series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+ series6.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
series6.Legend = "Legend1";
- series6.Name = "Y: Output Velocity";
- this.VelocityChart.Series.Add(series4);
+ series6.Name = "Last Mouse Move";
+ series7.ChartArea = "ChartArea1";
+ series7.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series7.Legend = "Legend1";
+ series7.Name = "Y: Output Velocity";
+ series8.ChartArea = "ChartArea1";
+ series8.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+ series8.IsVisibleInLegend = false;
+ series8.Legend = "Legend1";
+ series8.Name = "Y: Last Mouse Move";
this.VelocityChart.Series.Add(series5);
this.VelocityChart.Series.Add(series6);
+ this.VelocityChart.Series.Add(series7);
+ this.VelocityChart.Series.Add(series8);
this.VelocityChart.Size = new System.Drawing.Size(698, 307);
this.VelocityChart.TabIndex = 28;
this.VelocityChart.Text = "chart1";
@@ -434,22 +449,28 @@ namespace grapher
this.GainChart.Legends.Add(legend3);
this.GainChart.Location = new System.Drawing.Point(482, 647);
this.GainChart.Name = "GainChart";
- series7.ChartArea = "ChartArea1";
- series7.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
- series7.Legend = "Legend1";
- series7.Name = "Velocity Gain";
- series8.ChartArea = "ChartArea1";
- series8.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
- series8.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
- series8.Legend = "Legend1";
- series8.Name = "Last Mouse Move";
series9.ChartArea = "ChartArea1";
series9.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series9.Legend = "Legend1";
- series9.Name = "Y: Velocity Gain";
- this.GainChart.Series.Add(series7);
- this.GainChart.Series.Add(series8);
+ series9.Name = "Velocity Gain";
+ series10.ChartArea = "ChartArea1";
+ series10.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+ series10.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
+ series10.Legend = "Legend1";
+ series10.Name = "Last Mouse Move";
+ series11.ChartArea = "ChartArea1";
+ series11.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series11.Legend = "Legend1";
+ series11.Name = "Y: Velocity Gain";
+ series12.ChartArea = "ChartArea1";
+ series12.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+ series12.IsVisibleInLegend = false;
+ series12.Legend = "Legend1";
+ series12.Name = "Y: Last Mouse Move";
this.GainChart.Series.Add(series9);
+ this.GainChart.Series.Add(series10);
+ this.GainChart.Series.Add(series11);
+ this.GainChart.Series.Add(series12);
this.GainChart.Size = new System.Drawing.Size(698, 309);
this.GainChart.TabIndex = 29;
this.GainChart.Text = "chart1";
@@ -648,23 +669,23 @@ namespace grapher
this.AccelerationChartY.Legends.Add(legend4);
this.AccelerationChartY.Location = new System.Drawing.Point(1186, 0);
this.AccelerationChartY.Name = "AccelerationChartY";
- series10.ChartArea = "ChartArea1";
- series10.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
- series10.Legend = "Legend1";
- series10.Name = "Accelerated Sensitivity";
- series11.ChartArea = "ChartArea1";
- series11.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
- series11.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
- series11.Legend = "Legend1";
- series11.Name = "Last Mouse Move";
- series12.ChartArea = "ChartArea1";
- series12.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
- series12.IsVisibleInLegend = false;
- series12.Legend = "Legend1";
- series12.Name = "Placeholder";
- this.AccelerationChartY.Series.Add(series10);
- this.AccelerationChartY.Series.Add(series11);
- this.AccelerationChartY.Series.Add(series12);
+ series13.ChartArea = "ChartArea1";
+ series13.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series13.Legend = "Legend1";
+ series13.Name = "Accelerated Sensitivity";
+ series14.ChartArea = "ChartArea1";
+ series14.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+ series14.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
+ series14.Legend = "Legend1";
+ series14.Name = "Last Mouse Move";
+ series15.ChartArea = "ChartArea1";
+ series15.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series15.IsVisibleInLegend = false;
+ series15.Legend = "Legend1";
+ series15.Name = "Placeholder";
+ this.AccelerationChartY.Series.Add(series13);
+ this.AccelerationChartY.Series.Add(series14);
+ this.AccelerationChartY.Series.Add(series15);
this.AccelerationChartY.Size = new System.Drawing.Size(698, 328);
this.AccelerationChartY.TabIndex = 31;
this.AccelerationChartY.Text = "chart1";
@@ -684,23 +705,23 @@ namespace grapher
this.VelocityChartY.Legends.Add(legend5);
this.VelocityChartY.Location = new System.Drawing.Point(1186, 334);
this.VelocityChartY.Name = "VelocityChartY";
- series13.ChartArea = "ChartArea1";
- series13.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
- series13.Legend = "Legend1";
- series13.Name = "Output Velocity";
- series14.ChartArea = "ChartArea1";
- series14.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
- series14.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
- series14.Legend = "Legend1";
- series14.Name = "Last Mouse Move";
- series15.ChartArea = "ChartArea1";
- series15.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
- series15.IsVisibleInLegend = false;
- series15.Legend = "Legend1";
- series15.Name = "Placeholder";
- this.VelocityChartY.Series.Add(series13);
- this.VelocityChartY.Series.Add(series14);
- this.VelocityChartY.Series.Add(series15);
+ series16.ChartArea = "ChartArea1";
+ series16.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series16.Legend = "Legend1";
+ series16.Name = "Output Velocity";
+ series17.ChartArea = "ChartArea1";
+ series17.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+ series17.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
+ series17.Legend = "Legend1";
+ series17.Name = "Last Mouse Move";
+ series18.ChartArea = "ChartArea1";
+ series18.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series18.IsVisibleInLegend = false;
+ series18.Legend = "Legend1";
+ series18.Name = "Placeholder";
+ this.VelocityChartY.Series.Add(series16);
+ this.VelocityChartY.Series.Add(series17);
+ this.VelocityChartY.Series.Add(series18);
this.VelocityChartY.Size = new System.Drawing.Size(698, 307);
this.VelocityChartY.TabIndex = 32;
this.VelocityChartY.Text = "chart1";
@@ -720,23 +741,23 @@ namespace grapher
this.GainChartY.Legends.Add(legend6);
this.GainChartY.Location = new System.Drawing.Point(1186, 647);
this.GainChartY.Name = "GainChartY";
- series16.ChartArea = "ChartArea1";
- series16.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
- series16.Legend = "Legend1";
- series16.Name = "Velocity Gain";
- series17.ChartArea = "ChartArea1";
- series17.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
- series17.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
- series17.Legend = "Legend1";
- series17.Name = "Last Mouse Move";
- series18.ChartArea = "ChartArea1";
- series18.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
- series18.IsVisibleInLegend = false;
- series18.Legend = "Legend1";
- series18.Name = "Placeholder";
- this.GainChartY.Series.Add(series16);
- this.GainChartY.Series.Add(series17);
- this.GainChartY.Series.Add(series18);
+ series19.ChartArea = "ChartArea1";
+ series19.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series19.Legend = "Legend1";
+ series19.Name = "Velocity Gain";
+ series20.ChartArea = "ChartArea1";
+ series20.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+ series20.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
+ series20.Legend = "Legend1";
+ series20.Name = "Last Mouse Move";
+ series21.ChartArea = "ChartArea1";
+ series21.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
+ series21.IsVisibleInLegend = false;
+ series21.Legend = "Legend1";
+ series21.Name = "Placeholder";
+ this.GainChartY.Series.Add(series19);
+ this.GainChartY.Series.Add(series20);
+ this.GainChartY.Series.Add(series21);
this.GainChartY.Size = new System.Drawing.Size(698, 309);
this.GainChartY.TabIndex = 33;
this.GainChartY.Text = "chart1";
diff --git a/grapher/Models/AccelGUI.cs b/grapher/Models/AccelGUI.cs
index 5567be3..95d0c25 100644
--- a/grapher/Models/AccelGUI.cs
+++ b/grapher/Models/AccelGUI.cs
@@ -96,8 +96,8 @@ namespace grapher
public void RefreshOnRead()
{
- UpdateGraph();
UpdateShownActiveValues();
+ UpdateGraph();
}
public void UpdateGraph()
diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs
index 35fee2d..a140c90 100644
--- a/grapher/Models/Calculations/AccelCalculator.cs
+++ b/grapher/Models/Calculations/AccelCalculator.cs
@@ -110,9 +110,9 @@ namespace grapher.Models.Calculations
var ratio = magnitudeDatum.magnitude > 0 ? magnitudeWithoutSens / magnitudeDatum.magnitude : 1;
- if (!data.Combined.AccelPoints.ContainsKey(magnitudeDatum.magnitude))
+ if (!data.Combined.VelocityPoints.ContainsKey(magnitudeDatum.magnitude))
{
- data.Combined.AccelPoints.Add(magnitudeDatum.magnitude, ratio);
+ data.Combined.VelocityPoints.Add(magnitudeDatum.magnitude, magnitudeWithoutSens);
}
var xRatio = settings.sensitivity.x * ratio;
@@ -158,8 +158,8 @@ namespace grapher.Models.Calculations
}
lastInputMagnitude = magnitudeDatum.magnitude;
- lastOutputMagnitudeX = xOutDiff;
- lastOutputMagnitudeY = yOutDiff;
+ lastOutputMagnitudeX = xOut;
+ lastOutputMagnitudeY = yOut;
}
data.Combined.OrderedVelocityPointsList.AddRange(data.Combined.VelocityPoints.Values.ToList());
diff --git a/grapher/Models/Calculations/AccelChartData.cs b/grapher/Models/Calculations/AccelChartData.cs
index c943643..907eb0e 100644
--- a/grapher/Models/Calculations/AccelChartData.cs
+++ b/grapher/Models/Calculations/AccelChartData.cs
@@ -63,7 +63,7 @@ namespace grapher.Models.Calculations
public (double, double, double) ValuesAtIndex(int index)
{
- return (VelocityPoints.ElementAt(index).Value, AccelPoints.ElementAt(index).Value, GainPoints.ElementAt(index).Value);
+ return (AccelPoints.ElementAt(index).Value, VelocityPoints.ElementAt(index).Value, GainPoints.ElementAt(index).Value);
}
public int GetVelocityIndex(double outVelocityValue)
@@ -75,6 +75,8 @@ namespace grapher.Models.Calculations
velIdx = ~velIdx;
}
+ velIdx = Math.Min(velIdx, VelocityPoints.Count - 1);
+
return velIdx;
}
diff --git a/grapher/Models/Calculations/AccelData.cs b/grapher/Models/Calculations/AccelData.cs
index 894774b..0fe7a3c 100644
--- a/grapher/Models/Calculations/AccelData.cs
+++ b/grapher/Models/Calculations/AccelData.cs
@@ -1,6 +1,8 @@
using grapher.Models.Charts;
+using grapher.Models.Serialized;
using System;
using System.Collections.Generic;
+using System.Linq;
namespace grapher.Models.Calculations
{
@@ -20,6 +22,8 @@ namespace grapher.Models.Calculations
Estimated = combined;
EstimatedX = x;
EstimatedY = y;
+
+ OutVelocityToPoints = new Dictionary<double, (double, double, double, double, double, double, double)>();
}
#endregion Constructors
@@ -49,6 +53,7 @@ namespace grapher.Models.Calculations
Combined.Clear();
X.Clear();
Y.Clear();
+ OutVelocityToPoints.Clear();
}
public void CalculateDots(int x, int y, double timeInMs)
@@ -77,9 +82,10 @@ namespace grapher.Models.Calculations
EstimatedY.Gain.Set(inYVelocity, yGain);
}
- public void CalculateDotsCombinedDiffSens(int x, int y, double timeInMs)
+ public void CalculateDotsCombinedDiffSens(int x, int y, double timeInMs, DriverSettings settings)
{
- var outVelocity = AccelCalculator.Velocity(x, y, timeInMs);
+ (var xStripped, var yStripped) = AccelCalculator.StripSens(x, y, settings.sensitivity.x, settings.sensitivity.y);
+ var outVelocity = AccelCalculator.Velocity(xStripped, yStripped, timeInMs);
if (OutVelocityToPoints.TryGetValue(outVelocity, out var points))
{
@@ -93,9 +99,9 @@ namespace grapher.Models.Calculations
else
{
var index = Combined.GetVelocityIndex(outVelocity);
- var inVelocity = Combined.VelocityPoints[index];
- var xPoints = X.FindPointValuesFromOut(outVelocity);
- var yPoints = Y.FindPointValuesFromOut(outVelocity);
+ var inVelocity = Combined.VelocityPoints.ElementAt(index).Value;
+ var xPoints = X.ValuesAtIndex(index);
+ var yPoints = Y.ValuesAtIndex(index);
OutVelocityToPoints.Add(outVelocity, (inVelocity, xPoints.Item1, xPoints.Item2, xPoints.Item3, yPoints.Item1, yPoints.Item2, yPoints.Item3));
EstimatedX.Sensitivity.Set(inVelocity, xPoints.Item1);
EstimatedX.Velocity.Set(inVelocity, xPoints.Item2);
diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs
index 657ae89..d22ab78 100644
--- a/grapher/Models/Charts/AccelCharts.cs
+++ b/grapher/Models/Charts/AccelCharts.cs
@@ -98,6 +98,7 @@ namespace grapher
private ChartStateManager ChartStateManager { get; }
+
#endregion Properties
#region Methods
diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs
index a219cc4..ea67e83 100644
--- a/grapher/Models/Charts/ChartState/ChartState.cs
+++ b/grapher/Models/Charts/ChartState/ChartState.cs
@@ -23,6 +23,7 @@ namespace grapher.Models.Charts.ChartState
GainChart = gainChart;
Data = accelData;
Calculator = calculator;
+ TwoDotsPerGraph = false;
}
public ChartXY SensitivityChart { get; }
@@ -37,6 +38,8 @@ namespace grapher.Models.Charts.ChartState
public virtual DriverSettings Settings { get; set; }
+ internal bool TwoDotsPerGraph { get; set; }
+
public abstract void MakeDots(int x, int y, double timeInMs);
public abstract void Bind();
@@ -44,6 +47,7 @@ namespace grapher.Models.Charts.ChartState
public abstract void Activate();
public abstract void Calculate(ManagedAccel accel, DriverSettings settings);
+
public virtual void SetUpCalculate(DriverSettings settings)
{
Data.Clear();
@@ -52,9 +56,9 @@ namespace grapher.Models.Charts.ChartState
public void DrawLastMovement()
{
- SensitivityChart.DrawLastMovementValue();
- VelocityChart.DrawLastMovementValue();
- GainChart.DrawLastMovementValue();
+ SensitivityChart.DrawLastMovementValue(TwoDotsPerGraph);
+ VelocityChart.DrawLastMovementValue(TwoDotsPerGraph);
+ GainChart.DrawLastMovementValue(TwoDotsPerGraph);
}
public void SetWidened()
diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs
index c1153c1..bbc0c28 100644
--- a/grapher/Models/Charts/ChartState/XYOneGraphState.cs
+++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs
@@ -17,25 +17,27 @@ namespace grapher.Models.Charts.ChartState
gainChart,
accelData,
accelCalculator)
- { }
+ {
+ TwoDotsPerGraph = true;
+ }
public override void Activate()
{
- SensitivityChart.SetSeparate();
- VelocityChart.SetSeparate();
- GainChart.SetSeparate();
+ SensitivityChart.SetCombined();
+ VelocityChart.SetCombined();
+ GainChart.SetCombined();
}
public override void MakeDots(int x, int y, double timeInMs)
{
- Data.CalculateDotsCombinedDiffSens(x, y, timeInMs);
+ Data.CalculateDotsCombinedDiffSens(x, y, timeInMs, Settings);
}
public override void Bind()
{
- SensitivityChart.BindXY(Data.X.AccelPoints, Data.Y.AccelPoints);
- VelocityChart.BindXY(Data.X.VelocityPoints, Data.Y.VelocityPoints);
- GainChart.BindXY(Data.X.GainPoints, Data.Y.GainPoints);
+ SensitivityChart.BindXYCombined(Data.X.AccelPoints, Data.Y.AccelPoints);
+ VelocityChart.BindXYCombined(Data.X.VelocityPoints, Data.Y.VelocityPoints);
+ GainChart.BindXYCombined(Data.X.GainPoints, Data.Y.GainPoints);
}
public override void Calculate(ManagedAccel accel, DriverSettings settings)
diff --git a/grapher/Models/Charts/ChartXY.cs b/grapher/Models/Charts/ChartXY.cs
index 1360409..fdd0258 100644
--- a/grapher/Models/Charts/ChartXY.cs
+++ b/grapher/Models/Charts/ChartXY.cs
@@ -117,12 +117,17 @@ namespace grapher
chart.Titles[0].Font = new System.Drawing.Font(chart.Titles[0].Font.Name, 9.0f, System.Drawing.FontStyle.Italic);
}
- public static void DrawPoint(Chart chart, PointData point)
+ public static void DrawPoint(Chart chart, PointData pointOne, PointData pointTwo = null)
{
if (chart.Visible)
{
- point.Get(out var x, out var y);
+ pointOne.Get(out var x, out var y);
chart.Series[1].Points.DataBindXY(x, y);
+ if (pointTwo != null)
+ {
+ pointTwo.Get(out x, out y);
+ chart.Series[3].Points.DataBindXY(x, y);
+ }
chart.Update();
}
}
@@ -134,11 +139,18 @@ namespace grapher
YPointData = y;
}
- public void DrawLastMovementValue()
+ public void DrawLastMovementValue(bool twoDotsPerGraph = false)
{
if(Combined)
{
- DrawPoint(ChartX, CombinedPointData);
+ if (twoDotsPerGraph)
+ {
+ DrawPoint(ChartX, XPointData, YPointData);
+ }
+ else
+ {
+ DrawPoint(ChartX, CombinedPointData);
+ }
}
else
{
@@ -164,6 +176,12 @@ namespace grapher
ChartY.Series[0].Points.DataBindXY(dataY.Keys, dataY.Values);
}
+ public void BindXYCombined(IDictionary dataX, IDictionary dataY)
+ {
+ ChartX.Series[0].Points.DataBindXY(dataX.Keys, dataX.Values);
+ ChartX.Series[2].Points.DataBindXY(dataY.Keys, dataY.Values);
+ }
+
public void SetCombined()
{
if (!Combined)