summaryrefslogtreecommitdiffhomepage
path: root/ftnoir_filter_kalman/ftnoir_filter_kalman.h
diff options
context:
space:
mode:
Diffstat (limited to 'ftnoir_filter_kalman/ftnoir_filter_kalman.h')
-rwxr-xr-xftnoir_filter_kalman/ftnoir_filter_kalman.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/ftnoir_filter_kalman/ftnoir_filter_kalman.h b/ftnoir_filter_kalman/ftnoir_filter_kalman.h
index f6224530..1f0b36fd 100755
--- a/ftnoir_filter_kalman/ftnoir_filter_kalman.h
+++ b/ftnoir_filter_kalman/ftnoir_filter_kalman.h
@@ -19,6 +19,14 @@
#include "opentrack/options.hpp"
using namespace options;
+struct settings : opts {
+ value<int> noise_stddev_slider;
+ // slider goes noise_stdder 0->50
+ static constexpr double mult_noise_stddev = .5;
+ settings() : opts("kalman-filter"), noise_stddev_slider(b, "noise-stddev", 10)
+ {}
+};
+
class OPENTRACK_EXPORT FTNoIR_Filter : public IFilter
{
public:
@@ -28,10 +36,12 @@ public:
// Set accel_stddev assuming moving 0.0->100.0 in dt=0.2 is 3 stddevs: (100.0*4/dt^2)/3.
const double accel_stddev = (100.0*4/(0.2*0.2))/3.0;
// TODO(abo): make noise_stddev a UI setting 0.0->10.0 with 0.1 resolution.
- const double noise_stddev = 1.0;
+ //const double noise_stddev = 1.0;
cv::KalmanFilter kalman;
double last_input[6];
QElapsedTimer timer;
+ settings s;
+ int prev_slider_pos;
};
class OPENTRACK_EXPORT FTNoIR_FilterDll : public Metadata
@@ -47,13 +57,14 @@ class OPENTRACK_EXPORT FilterControls: public IFilterDialog
public:
FilterControls() {
ui.setupUi(this);
- connect(ui.btnOk, SIGNAL(clicked()), this, SLOT(doOK()));
- connect(ui.btnCancel, SIGNAL(clicked()), this, SLOT(doCancel()));
- show();
+ connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(doOK()));
+ connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(doCancel()));
+ tie_setting(s.noise_stddev_slider, ui.noise_slider);
}
Ui::KalmanUICFilterControls ui;
void register_filter(IFilter*) override {}
void unregister_filter() override {}
+ settings s;
public slots:
void doOK();
void doCancel();