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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#include "wizard.h"
#include "opentrack/state.hpp"
#include "ftnoir_tracker_pt/ftnoir_tracker_pt_settings.h"
#include "ftnoir_filter_accela/ftnoir_filter_accela.h"
Wizard::Wizard() : QWizard(nullptr)
{
ui.setupUi(this);
connect(this, SIGNAL(accepted()), this, SLOT(set_data()));
}
static constexpr double tz[][2] = {
{ 16.5327205657959, 13.0232553482056 },
{ 55.4535026550293, 100 },
{ 56.8312301635742, 100 },
{ -1, -1 },
};
static constexpr double yaw[][2] = {
{ 10.7462686567164, 20.9302325581395 },
{ 41.9517784118652, 180 },
{ -1, -1 },
};
static constexpr double pitch[][2] = {
{ 10.1262916188289, 27.6279069767442 },
{ 32.4454649827784, 180 },
{ -1, -1 },
};
static constexpr double roll[][2] = {
{ 12.3995409011841, 25.9534893035889 },
{ 54.3513221740723, 180 },
{ -1, -1 },
};
static void set_mapping(Mapping& m, const double spline[][2])
{
m.opts.altp = false;
m.curve.removeAllPoints();
for (int i = 0; spline[i][0] >= 0; i++)
m.curve.addPoint(QPointF(spline[i][0], spline[i][1]));
}
void Wizard::set_data()
{
Model m;
if (ui.clip_model->isChecked())
m = ClipRight;
else if (ui.clip_model_left->isChecked())
m = ClipLeft;
else // ui.cap_model
m = Cap;
State state;
set_mapping(state.pose(TZ), tz);
set_mapping(state.pose(Yaw), yaw);
set_mapping(state.pose(Pitch), pitch);
set_mapping(state.pose(Roll), roll);
state.pose.save_mappings();
settings_pt pt;
switch (m)
{
default:
case Cap: pt.t_MH_x = 0; pt.t_MH_y = 0; pt.t_MH_z = 0; break;
case ClipRight: pt.t_MH_x = ClipRightX; pt.t_MH_y = 0; pt.t_MH_z = 0; break;
case ClipLeft: pt.t_MH_x = ClipLeftX; pt.t_MH_y = 0; pt.t_MH_z = 0; break;
}
pt.threshold = 31;
pt.min_point_size = 2;
pt.max_point_size = 50;
pt.fov = 1;
pt.camera_mode = 0;
pt.b->save();
settings_accela acc;
acc.ewma = 49;
acc.rot_threshold = 29;
acc.rot_deadzone = 29;
acc.trans_deadzone = 33;
acc.trans_threshold = 19;
acc.b->save();
}
|