diff options
Diffstat (limited to 'ftnoir_filter_kalman/ftnoir_filter_kalman.h')
-rwxr-xr-x | ftnoir_filter_kalman/ftnoir_filter_kalman.h | 19 |
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(); |