summaryrefslogtreecommitdiffhomepage
path: root/tracker-pt/ftnoir_tracker_pt.h
AgeCommit message (Collapse)Author
2021-10-19cv, tracker/pt: cleanup opencv includesStanislaw Halik
2021-10-18tracker/pt: remove camera_mtxStanislaw Halik
2021-10-18tracker/pt: fix the deadlock even harderStanislaw Halik
2021-10-17tracker/pt: fix the deadlock for good this timeStanislaw Halik
2021-10-16tracker/pt: bail out early on camera open failureStanislaw Halik
2021-10-02tracker/pt: fix rare crash due to QProcess use across threadsStanislaw Halik
This was caused by QProcess in video/ps3eye getting created from the UI thread, then recreated on the Point Tracker's thread.
2021-09-28tracker/pt: add point filterStanislaw Halik
2019-02-22cosmetic fixes onlyStanislaw Halik
2019-02-21tracker/pt: don't `namespace pt_module' for core PT stuffStanislaw Halik
2019-02-11video/widget: externalize opencv codeStanislaw Halik
2019-01-16compat/mutex: removeStanislaw Halik
Always use the adaptive QMutex.
2019-01-16cv/numeric: rename namespaceStanislaw Halik
2019-01-16tracker/pt: cleanup, declarations, lock scopeStanislaw Halik
2018-08-04tracker/pt: fix center with dynamic pose setStanislaw Halik
It was necessary to center _twice_ in order to reset dynamic pose. Put a spinlock around the code.
2018-06-26core, modules: modernize syntax onlyStanislaw Halik
Use more C++17 features where this helps any.
2018-04-27tracker/pt: cleanup initializationStanislaw Halik
2018-02-16tracker/{pt,wii}: simplify apiStanislaw Halik
Remove useless abstract member functions, simplify some. Issue: #718
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-01-18compat/util: retireStanislaw Halik
Adjust usages.
2018-01-16cv/video-frame, tracker/pt: add hidpi preview supportStanislaw Halik
2018-01-13tracker/pt: workaround unexplained leakStanislaw Halik
Somehow, using unique_ptr causes a leak at destruct time. The stored pointer isn't freed. It works perfectly fine with shared_ptr. It seems I'm doing things correctly with a move constructor for unique_ptr in the Tracker_PT class, as well as the pointer initialization ctor in `module.cpp'. Who the hell knows what's happening behind the scenes.
2018-01-12tracker/pt: isolate point extractor and image typeStanislaw Halik
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: cleanupStanislaw Halik
2018-01-10tracker/pt: reset dynamic pose on centerStanislaw Halik
2017-12-09many: use otr_tr for non-qobject translationStanislaw Halik
I haven't even compile-tested Linux and OSX-specific bits.
2017-12-04api: add status check for modulesStanislaw Halik
2017-08-19tracker/{pt,aruco}: simplifyStanislaw Halik
2017-08-14tracker/pt: move Affine class to cv/Stanislaw Halik
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-03-20tracker/pt: rename slotStanislaw Halik
2017-03-20tracker/pt: camera changesStanislaw Halik
- move dt handling here, from ITracker impl - don't depend on other PT headers. we'd like to reuse the code. - adjust return value convention. - get rid of dt_valid - return fps as a double Adjust usages in ITracker impl and dialog.
2017-02-25tracker/pt: fix clang-reported compile errorStanislaw Halik
2017-02-21tracker/pt: resize the camera feed, not the previewStanislaw Halik
This makes the point size text and point crosses not alias due to the resize. Due to nice pixel coordinate system, the cross-drawing lambda only needs minimal changes.
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-12-03tracker/{aruco,pt}: use RAII for QObjectStanislaw Halik
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-11-05fix buildStanislaw Halik
2016-11-05modules: make more strings translatableStanislaw Halik
2016-11-04modules: make names uniqueStanislaw 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-16tracker/pt: get rid of pt_types classStanislaw Halik
2016-09-05tracker/{aruco,pt}: remove camera settings buttonStanislaw Halik
It's broken and users complain on the issue tracker. Also fix tab stops.
2016-08-12all: rename modules s#^opentrack-##. and opentrack -> apiStanislaw Halik
Adjust usages.
2016-08-10cv: move calibrator and video widget to cv moduleStanislaw Halik
Adjust usages in PT and Aruco trackers.
2016-07-31tracker/{aruco, pt}, compat, api: move opencv camera class to cv moduleStanislaw Halik
2016-07-19tracker/pt: reduce lockingStanislaw Halik
2016-07-19some: replace hardcoded pi values with the same pi constantStanislaw Halik
We can't depend on M_PI existing after including cmath.
2016-07-16few: update/add copyrightStanislaw 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.