summaryrefslogtreecommitdiffhomepage
path: root/filter-accela/accela-settings.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'filter-accela/accela-settings.hpp')
-rw-r--r--filter-accela/accela-settings.hpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/filter-accela/accela-settings.hpp b/filter-accela/accela-settings.hpp
new file mode 100644
index 00000000..9f0af413
--- /dev/null
+++ b/filter-accela/accela-settings.hpp
@@ -0,0 +1,60 @@
+#pragma once
+
+#include "options/options.hpp"
+using namespace options;
+#include "spline-widget/spline.hpp"
+
+struct settings_accela : opts
+{
+ static constexpr double rot_gains[16][2] =
+ {
+ { 12, 500 },
+ { 11, 450 },
+ { 10, 400 },
+ { 9, 350 },
+ { 8, 300 },
+ { 7, 250 },
+ { 6, 200 },
+ { 2.66, 50 },
+ { 1.66, 17 },
+ { 1, 4 },
+ { .5, .53 },
+ { 0, 0 },
+ { -1, 0 }
+ };
+
+ static constexpr double trans_gains[16][2] =
+ {
+ { 12, 400 },
+ { 11, 350 },
+ { 10, 300 },
+ { 9, 250 },
+ { 8, 200 },
+ { 7, 150 },
+ { 5, 80 },
+ { 3, 32 },
+ { 2, 10 },
+ { 1.66, 6 },
+ { 1.33, 3 },
+ { .66, 1 },
+ { .33, .5 },
+ { 0, 0 },
+ { -1, 0 }
+ };
+
+ static void make_splines(spline& rot, spline& trans);
+
+ value<slider_value> rot_sensitivity, trans_sensitivity;
+ value<slider_value> rot_deadzone, trans_deadzone;
+ value<slider_value> ewma;
+ value<slider_value> rot_nonlinearity;
+ settings_accela() :
+ opts("accela-sliders"),
+ rot_sensitivity(b, "rotation-sensitivity", slider_value(1.8, .05, 3)),
+ trans_sensitivity(b, "translation-sensitivity", slider_value(1.8, .05, 3)),
+ rot_deadzone(b, "rotation-deadzone", slider_value(0, 0, .5)),
+ trans_deadzone(b, "translation-deadzone", slider_value(0, 0, .5)),
+ ewma(b, "ewma", slider_value(0, 0, 15)),
+ rot_nonlinearity(b, "rotation-nonlinearity", slider_value(1, 1, 1.75))
+ {}
+};