summaryrefslogtreecommitdiffhomepage
path: root/tracker-pt/point_tracker.cpp
AgeCommit message (Collapse)Author
2018-07-08modernize onlyStanislaw Halik
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-05compat/nan: retireStanislaw Halik
It was broken for MSVC where isnan doesn't work with fast math. Fall back to `fpclassify'. Adjust usages.
2018-01-21tracker/pt-base: add static pt_camera_info::get_focal_lengthStanislaw Halik
For the Wiimote tracker. Adjust usages in tracker/pt. Issue: #718
2018-01-11tracker/pt: allow for reuseStanislaw Halik
Issue: #718 This allows for replacing the camera and point extractor code. See `module.cpp' and `pt-api.hpp`.
2018-01-10tracker/pt: reset dynamic pose on centerStanislaw Halik
2017-10-29static constexpr -> constexprStanislaw Halik
2017-10-22tracker/pt: return focal length directlyStanislaw Halik
2017-09-22tracker/pt: add color extraction modesStanislaw Halik
2017-07-25tracker/pt: reduce pose reuseStanislaw Halik
It could cause microstutter.
2017-07-16compat/math-imports: use itStanislaw Halik
2017-07-07tracker/pt: reduce LED deadzoneStanislaw Halik
It qualifies far less often now, but will likely reduce jerkiness.
2017-06-18get rid of "volatile" abuseStanislaw Halik
We heavily used "volatile bool" to check if the thread loop should stop. But this functionality is already provided by Qt5's QThread::requestInterruption. In other cases, "volatile" is wonderfully underspecified so it's better to ditch its usage in favor of std::atomic<t>. At the time we don't appear to be using the "volatile" keyword except when calling win32's Interlocked*() family of functions as necessary. In freetrackclient's header the "volatile" qualifier was used as part of a typedef. This doesn't work. Use it as part of data declaration.
2017-06-18tracker/pt: adjust after sqrtStanislaw Halik
2017-06-18tracker/pt: use last pose when not differentStanislaw Halik
We allow for max of less than a pixel skew of all the points.
2017-06-12tracker/pt: cleanupStanislaw Halik
Also, changing "f" typedef to "float" won't break the build anymore.
2016-12-16tracker/pt: refactor camera info handlingStanislaw Halik
- Pass `struct CamInfo' rather than several elements separately - Reformat - Return `struct CamInfo' together with the frame since then it's always valid - Move the focal length formula into `struct CamInfo' - Remove incorrect focal length formula rather than #if 0 - Pass some stuff by reference and not by pointer
2016-11-12tracker/pt: refactorStanislaw Halik
- separate .{cpp,hpp} for few classes - don't include namespaces globally; harmless but looks bad anyway - class with all public members to struct
2016-10-11tracker/pt: increase min point radius to sensible valueStanislaw Halik
We can't possibly have LEDs smaller than (6/3=2) each. Especially not (2.5/6).
2016-10-10tracker/pt: get rid of heap allocationStanislaw Halik
Use stack arrays rather than vectors. std::array may be a better choice though.
2016-10-07tracker/pt: C++11-izeStanislaw Halik
2016-09-21many: remove compat/pi-constant.hppStanislaw Halik
With -D_USE_MATH_DEFINES MSVC defines the standard M_PI and friends. Since this preprocessor definition is now always passed as part of the build system for MSVC. We can use M_PI as if on a mission.
2016-09-20typoStanisław Halik
2016-09-16tracker/pt: get rid of pt_types classStanislaw Halik
2016-08-26fix linux build: missing symbol N_POINTSDaMichel
2016-08-12all: rename modules s#^opentrack-##. and opentrack -> apiStanislaw Halik
Adjust usages.
2016-08-04tracker/pt: lower max dynamic pose distanceStanislaw Halik
2016-07-31tracker/pt: use max distance for dynamic poseStanislaw Halik
2016-07-25tracker/pt: fix dynamic poseStanislaw Halik
Issue: #386
2016-07-19tracker/pt: reduce lockingStanislaw Halik
2016-07-19tracker/pt: check for nan before writing poseStanislaw Halik
2016-07-16tracker/pt: declare floating-point type size in one placeStanislaw Halik
We want double precision for POSIT. It's best for the type to be set in ope place without the need to go over everything while switching it back and forth during tests. Machine epsilon for float is very small as per <https://en.wikipedia.org/wiki/Machine_epsilon>. Also see the absurdly high epsilon of 1e-4 of POSIT that we've had. With floats, making the epsilon lower resulted in change deltas flushing to zero. This typically led to the translation Z value being very unstable in PT. After the epsilon and data type size changes the Z value is stable.
2016-07-06tracker/pt: fix out-of-bounds writeStanislaw Halik
The input array has exactly 3 points. The vector has potentially more points, sorted by circularity. Spotted-by: @DaMichel Closes #380
2016-06-21tracker/pt: move pi constant to headersStanislaw Halik
2016-06-14tracker/pt: use unsigned index where ableStanislaw Halik
2016-06-09tracker/pt: fix float <-> double promote/demoteStanislaw Halik
We use the cmath version to access the "float x" overload.
2016-05-15many: remove executable bit from source filesStanislaw Halik
We no longer have this recurring problem since I enabled ignoring executable bit changes on the Windows workstation.
2016-05-13many: remove unneeded implicit type conversion double <-> floatStanislaw Halik
2016-04-23tracker/pt: add caveat to POSITStanislaw Halik
causes breakage. even with denormal flush to zero it's not correct to compare to epsilon.
2016-03-07Revert "tracker/pt: don't use exact float comparison in POSIT"Stanislaw Halik
This reverts commit a40a557caddad5285bd03b79dca5f7a94d1f44c5.
2016-03-07tracker/pt: don't use exact float comparison in POSITStanislaw Halik
2016-03-07tracker/pt: remove branching that's frequently mispredictedStanislaw Halik
2015-12-18tracker/pt: reduce mutex contentionStanislaw Halik
2015-10-30move to subdirectory-based build systemStanislaw Halik
Closes #224