1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#pragma once
#include "spline/spline.hpp"
#include "options/options.hpp"
using namespace options;
// ------------------------------------
// debug knobs
// ------------------------------------
//#define DEBUG_ACCELA
//#define SPLINE_ROT_DEBUG
//#define SPLINE_TRANS_DEBUG
struct settings_accela : opts
{
struct gains
{
double x, y;
};
static constexpr gains const rot_gains[] {
{ 9, 300 },
{ 8, 200 },
{ 5, 100 },
{ 2.5, 35 },
{ 1.5, 8 },
{ 1, 1.5 },
{ .5, .4 },
};
static constexpr gains const pos_gains[] {
{ 9, 200 },
{ 8, 150 },
{ 7, 110 },
{ 5, 60 },
{ 3, 24 },
{ 2, 7.5 },
{ 1.66, 4.5 },
{ 1.33, 2.25 },
{ .66, .75 },
{ .33, .375 },
{ 0, 0 },
};
static void make_splines(spline& rot, spline& pos);
value<slider_value> rot_smoothing { b, "rotation-sensitivity", { 1.5, .05, 2.5 } },
pos_smoothing { b, "translation-sensitivity", { 1., .05, 1.5 } },
rot_deadzone { b, "rotation-deadzone", { .03, 0, .2 } },
pos_deadzone { b, "translation-deadzone", { .1, 0, 1 } };
settings_accela() : opts("accela-sliders") {}
};
|