summaryrefslogtreecommitdiffhomepage
path: root/filter-accela/ftnoir_filter_accela.cpp
AgeCommit message (Collapse)Author
2019-02-11compat/macros: remove prefixStanislaw Halik
Let's not be concerned about global namespace pollution. These identifiers aren't exposed in the api/ directory.
2019-01-16cruft onlyStanislaw Halik
2019-01-16modernize onlyStanislaw Halik
- replace `static constexpr inline' with `static constexpr'. `inline' is implied. - use braced initializer lists where applicable - still missing `override' usages
2019-01-16cruft onlyStanislaw Halik
2018-12-06cruft onlyStanislaw Halik
2018-07-08modernize onlyStanislaw Halik
2018-06-26filter/accela: get rid of pointless `progn'Stanislaw Halik
2018-06-26modernize C++ syntaxStanislaw Halik
No visible changes (hopefully).
2018-06-26compat/macros: rename portability macrosStanislaw Halik
use `cc_xx' rather than awkward synonyms.
2018-05-27filter/accela: remove unused variableStanislaw Halik
Found-with: GCC 8 -Wall -Wextra
2018-05-17filter/accela: update wrt compat/timerStanislaw Halik
2018-05-17filter/accela: fix buffer overrunStanislaw Halik
Found-with: clang-analyzer, clazy, clang-tidy
2018-02-15clean up "static" and "constexpr" typesStanislaw Halik
- use `static constexpr inline' to avoid requiring explicit declarations in object code - use `const Foo* const' to maybe put into readonly binary segment (at least for ELF DSOs) - `constexpr' in function scope has storage, avoid `static' - don't use `constexpr' where there's no advantage, like arrays We'd like to avoid overhead of atomic initialization for each function call. No idea how `static constexpr' requiring storage in the standard plays with atomic initialization requirement. Hearsay points that `constexpr' without `static' in block scope behaves more to our liking. It's all hazy though. I'm not 100% sure if `static inline constexpr' has any storage. Hopefully none, like a #define, and stuff bigger than registers gets coalesced within the same module, with small stuff being immediates.
2018-02-14filter/accela: revert deadzone test codeStanislaw Halik
Looks strange ingame.
2018-02-09filter/accela: euthanize "smoothing"Stanislaw Halik
It only confuses users. Rename "sensitivity" to "smoothing". Update i18n source as per #743
2018-02-05filter/accela: experimental less strict deadzoneStanislaw Halik
2018-01-18compat/util: retireStanislaw Halik
Adjust usages.
2017-10-27filter/accela: kill rotation nonlinearityStanislaw Halik
2017-10-20fix wrt spline apiStanislaw Halik
2017-10-20some nonsenseStanislaw Halik
2017-07-16compat/math-imports: use itStanislaw Halik
2017-07-07filter/accela: add debug knobStanislaw Halik
2017-06-22misc irrelevantStanislaw Halik
2017-06-12filter/accela: make nonlinearity actually usefulStanislaw Halik
It needs to go further than the very beginning.
2017-06-12cleanupStanislaw Halik
2017-06-10filter/accela: make gain less sluggish overallStanislaw Halik
2017-05-16filter/accela: the clamp doesn't work rightStanislaw Halik
It leaves stutter. Best leave as it is.
2017-05-16filter/accela: fix clamp regressionStanislaw Halik
Clean up after 632cd5bf7778cb9062633f8d27ecd6aadcaa5d28. The condition was inverting, causing great pain and woe. Issue: #620.
2017-05-10filter/accela: punt if running ahead of the input valueStanislaw Halik
2017-04-30filter/accela: reduce microstutterStanislaw Halik
Discussed-with: @mrsanchos
2017-04-29filter/accela: prevent overshoot with ewmaStanislaw Halik
2017-04-29filter/accela: make ewma working in 3-axis modeStanislaw Halik
2017-04-18many: use std::f{max,min} for floating-point valuesStanislaw Halik
2017-04-17filter/accela: revert -180->180 fixStanislaw Halik
Does more harm than good. For 360' inertial devices, recommend other or no filter at all. Issue: #600
2017-03-28filter/accela: embiggen "using" declaration scopeStanislaw Halik
2017-03-28filter/accela: add forgotten fabs in checkStanislaw Halik
2017-03-27filter/accela: filter all rot/pos DOF togetherStanislaw Halik
Apply gain to Euclidean distance of rotation/position change, rather to each DOF separately. Weight each DOF's separate length and normalize it. This makes diagonal movements less staircase-y. You'll need smaller sensitivity values given Euclid of (x,y,z) is smaller than |x|+|y|+|z|.
2017-03-17filter/accela: special-case the -180/180 rotation boundaryStanislaw Halik
Previously crossing the 180 degree boundary got treated as a large rotation. This is of course incorrect. The error in fact lies only in the filter. Special-case the sign changes. We're centering prior to filtering in logic/tracker.cpp so it's all right in the world. Issue: #533 Reported-by: @Ounicron Fixes: #533
2017-03-16filter/accela: commentStanislaw Halik
2017-02-18filter/accela: use the correct magic valueStanislaw Halik
It's only a coincidence 1.5 is the slider's max value.
2017-01-29spline-widget: remove camel caseStanislaw Halik
My eyes bleed a bit less
2017-01-16filter/accela: add commented out -180->180 delta logicStanislaw Halik
We can't use it (yet?) since the filter runs before any mapping is done.
2017-01-16filter/accela: simplify value<t> castStanislaw Halik
2016-12-30filter/accela: simplify macroStanislaw Halik
2016-12-25filter/accela: fix compile error on clangStanislaw Halik
2016-11-23filter/accela: fix formulaStanislaw Halik
We need to multiply by rot_nl or there's a discontinuity.
2016-11-23filter/accela: simplify main loopStanislaw Halik
2016-11-04modules: make names uniqueStanislaw Halik
2016-09-20filter/accela: make more readableStanislaw Halik
progn is similar to one in CLHS cf. http://clhs.lisp.se/Body/s_progn.htm
2016-09-17filter/accela: update copyrightStanislaw Halik