From 97ac4933594cc886d135d0e22ddbe76763bb9d4a Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Tue, 4 Aug 2020 20:32:24 -0700 Subject: Add velocity gain option --- grapher/CapOptions.cs | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 grapher/CapOptions.cs (limited to 'grapher/CapOptions.cs') diff --git a/grapher/CapOptions.cs b/grapher/CapOptions.cs new file mode 100644 index 0000000..310a214 --- /dev/null +++ b/grapher/CapOptions.cs @@ -0,0 +1,130 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace grapher +{ + public class CapOptions + { + public CapOptions( + ToolStripMenuItem sensitivityCapCheck, + ToolStripMenuItem velocityGainCapCheck, + OptionXY capOptionFields) + { + + SensitivityCapCheck = sensitivityCapCheck; + VelocityGainCapCheck = velocityGainCapCheck; + CapOptionsFields = capOptionFields; + + SensitivityCapCheck.Click += new System.EventHandler(OnSensitivityCapCheckClick); + VelocityGainCapCheck.Click += new System.EventHandler(OnVelocityGainCapCheckClick); + + SensitivityCapCheck.CheckedChanged += new System.EventHandler(OnSensitivityCapCheckedChange); + VelocityGainCapCheck.CheckedChanged += new System.EventHandler(OnVelocityGainCapCheckedChange); + + EnableSensitivityCap(); + } + + ToolStripMenuItem SensitivityCapCheck { get; } + + ToolStripMenuItem VelocityGainCapCheck { get; } + + OptionXY CapOptionsFields { get; } + + public double SensitivityCapX { + get + { + if (IsSensitivityGain) + { + return CapOptionsFields.Fields.X; + } + else + { + return 0; + } + } + } + + public double SensitivityCapY { + get + { + if (IsSensitivityGain) + { + return CapOptionsFields.Fields.Y; + } + else + { + return 0; + } + } + } + + public double VelocityGainCap { + get + { + if (IsSensitivityGain) + { + return 0; + } + else + { + return CapOptionsFields.Fields.X; + } + } + } + + public bool IsSensitivityGain { get; private set; } + + void OnSensitivityCapCheckClick(object sender, EventArgs e) + { + if (!SensitivityCapCheck.Checked) + { + VelocityGainCapCheck.Checked = false; + SensitivityCapCheck.Checked = true; + } + } + + void OnVelocityGainCapCheckClick(object sender, EventArgs e) + { + if (!VelocityGainCapCheck.Checked) + { + VelocityGainCapCheck.Checked = true; + SensitivityCapCheck.Checked = false; + } + } + + void OnSensitivityCapCheckedChange(object sender, EventArgs e) + { + if (SensitivityCapCheck.Checked == true) + { + EnableSensitivityCap(); + } + } + + void OnVelocityGainCapCheckedChange(object sender, EventArgs e) + { + if (SensitivityCapCheck.Checked == true) + { + EnableVelocityGainCap(); + } + } + + void EnableSensitivityCap() + { + IsSensitivityGain = true; + CapOptionsFields.Fields.LockCheckBox.Enabled = true; + CapOptionsFields.SetName("Sensitivity Cap"); + } + + void EnableVelocityGainCap() + { + IsSensitivityGain = false; + CapOptionsFields.Fields.LockCheckBox.Checked = true; + CapOptionsFields.Fields.LockCheckBox.Enabled = false; + CapOptionsFields.SetName("Velocity Gain Cap"); + } + } +} -- cgit v1.2.3 From 65a74b97c0c9ac8ca10312c0749e33df9e64b3d9 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Tue, 11 Aug 2020 23:06:39 -0700 Subject: Disallow differing x and y weights with gain cap --- grapher/CapOptions.cs | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'grapher/CapOptions.cs') diff --git a/grapher/CapOptions.cs b/grapher/CapOptions.cs index 310a214..2ee7f6b 100644 --- a/grapher/CapOptions.cs +++ b/grapher/CapOptions.cs @@ -12,12 +12,14 @@ namespace grapher public CapOptions( ToolStripMenuItem sensitivityCapCheck, ToolStripMenuItem velocityGainCapCheck, - OptionXY capOptionFields) + OptionXY capOption, + OptionXY weightOption) { SensitivityCapCheck = sensitivityCapCheck; VelocityGainCapCheck = velocityGainCapCheck; - CapOptionsFields = capOptionFields; + CapOption = capOption; + WeightOption = weightOption; SensitivityCapCheck.Click += new System.EventHandler(OnSensitivityCapCheckClick); VelocityGainCapCheck.Click += new System.EventHandler(OnVelocityGainCapCheckClick); @@ -32,14 +34,16 @@ namespace grapher ToolStripMenuItem VelocityGainCapCheck { get; } - OptionXY CapOptionsFields { get; } + OptionXY CapOption { get; } + + OptionXY WeightOption { get; } public double SensitivityCapX { get { if (IsSensitivityGain) { - return CapOptionsFields.Fields.X; + return CapOption.Fields.X; } else { @@ -53,7 +57,7 @@ namespace grapher { if (IsSensitivityGain) { - return CapOptionsFields.Fields.Y; + return CapOption.Fields.Y; } else { @@ -71,7 +75,7 @@ namespace grapher } else { - return CapOptionsFields.Fields.X; + return CapOption.Fields.X; } } } @@ -115,16 +119,19 @@ namespace grapher void EnableSensitivityCap() { IsSensitivityGain = true; - CapOptionsFields.Fields.LockCheckBox.Enabled = true; - CapOptionsFields.SetName("Sensitivity Cap"); + CapOption.Fields.LockCheckBox.Enabled = true; + WeightOption.Fields.LockCheckBox.Enabled = true; + CapOption.SetName("Sensitivity Cap"); } void EnableVelocityGainCap() { IsSensitivityGain = false; - CapOptionsFields.Fields.LockCheckBox.Checked = true; - CapOptionsFields.Fields.LockCheckBox.Enabled = false; - CapOptionsFields.SetName("Velocity Gain Cap"); + CapOption.Fields.LockCheckBox.Checked = true; + CapOption.Fields.LockCheckBox.Enabled = false; + WeightOption.Fields.LockCheckBox.Checked = true; + WeightOption.Fields.LockCheckBox.Enabled = false; + CapOption.SetName("Velocity Gain Cap"); } } } -- cgit v1.2.3