summaryrefslogtreecommitdiff
path: root/grapher/Models/Charts
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 /grapher/Models/Charts
parentAttempt to get separate x/y working (diff)
downloadrawaccel-ba642cd8c8e63ec3778fa17ecbcd7964074aaba1.tar.xz
rawaccel-ba642cd8c8e63ec3778fa17ecbcd7964074aaba1.zip
separate x/y mostly works
Diffstat (limited to 'grapher/Models/Charts')
-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
4 files changed, 40 insertions, 15 deletions
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)