summaryrefslogtreecommitdiff
path: root/grapher/Models/Charts/ChartState
diff options
context:
space:
mode:
Diffstat (limited to 'grapher/Models/Charts/ChartState')
-rw-r--r--grapher/Models/Charts/ChartState/ChartState.cs17
-rw-r--r--grapher/Models/Charts/ChartState/ChartStateManager.cs18
-rw-r--r--grapher/Models/Charts/ChartState/CombinedState.cs28
-rw-r--r--grapher/Models/Charts/ChartState/XYOneGraphState.cs23
-rw-r--r--grapher/Models/Charts/ChartState/XYTwoGraphState.cs20
5 files changed, 49 insertions, 57 deletions
diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs
index 0bb141e..5a86713 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; }
@@ -40,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()
{
@@ -77,12 +82,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();
}
diff --git a/grapher/Models/Charts/ChartState/ChartStateManager.cs b/grapher/Models/Charts/ChartState/ChartStateManager.cs
index 54d2e81..3d4bbec 100644
--- a/grapher/Models/Charts/ChartState/ChartStateManager.cs
+++ b/grapher/Models/Charts/ChartState/ChartStateManager.cs
@@ -14,28 +14,32 @@ 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(
sensitivityChart,
velocityChart,
gainChat,
- accelData,
+ xPoints,
+ yPoints,
accelCalculator);
}
@@ -52,7 +56,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;
}
diff --git a/grapher/Models/Charts/ChartState/CombinedState.cs b/grapher/Models/Charts/ChartState/CombinedState.cs
index 9eadb87..3511cec 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()
{
@@ -30,23 +32,13 @@ 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.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);
- }
-
- public override void Calculate(ManagedAccel accel, DriverSettings settings)
- {
- Calculator.Calculate(Data.Combined, accel, settings.sensitivity.x, Calculator.SimulatedInputCombined);
+ 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);
}
}
}
diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs
index 2b3cd9c..34e9070 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,18 +10,22 @@ 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)
{
+ DataDirectional = new AccelDataXYDirectional(xPoints, yPoints, accelCalculator);
+ Data = DataDirectional;
TwoDotsPerGraph = true;
}
+ private AccelDataXYDirectional DataDirectional { get; }
+
public override void Activate()
{
SensitivityChart.SetCombined();
@@ -28,23 +33,13 @@ namespace grapher.Models.Charts.ChartState
GainChart.SetCombined();
}
- public override void MakeDots(double x, double y, double timeInMs)
- {
- Data.CalculateDotsCombinedDiffSens(x, y, timeInMs, Settings);
- }
-
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);
+ 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 732ea3c..5b6c2b8 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; }
@@ -33,11 +36,6 @@ namespace grapher.Models.Charts.ChartState
GainChart.ClearSecondDots();
}
- public override void MakeDots(double x, double y, double timeInMs)
- {
- Data.CalculateDotsXY(x, y, timeInMs);
- }
-
public override void Bind()
{
SensitivityChart.BindXY(Data.X.AccelPoints, Data.Y.AccelPoints);
@@ -47,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);
- }
}
}