Age | Commit message (Collapse) | Author |
|
With a very small denominator in barycentric coords formula we get a
dissociated octopus that took PCP and LSD in one sitting.
A dead Octopus is just a bunch of blue spheres.
IOW, in division with too small a denominator operand the results are
numerically unstable.
This is done in the constructor in a convoluted way as to avoid
branching during calculating for each pixel.
Issue: #356
Reported-by: @MathijsG
|
|
This reverts commit 546cfb5ad52dcfe1421d1af5e7baeada588ac735.
@MathijsG points out that some users have red LEDs, not uniform white.
Issue: #355
|
|
The confusion stems from the max slider value. It's 255, not 100 as is
the default. Max pixel count change to 20 was confused as we'll counting
area and not radius here. Taking into account that the value was divided
by 100 previously, it's bit less than the previous one but not as
confused as then.
Reported-by: @MathijsG
Issue: #355
|
|
|
|
|
|
|
|
|
|
|
|
The numeric warnings are somewhat useful. Sadly only clang supports the
vtable object file bloat warning.
|
|
|
|
The files are machine-generated and full of redundancies. With pedantic
warnings it drowns the relevant stuff.
|
|
It's pointless for it to exist, see previous commit for rationale. No
call sites.
|
|
With the GNU toolchain there's some mix-up and the "opentrack_version"
symbol isn't emitted into the object file at all. Disable LTO for the
"version" statically linked library.
The "version" statically linked library exists so that files needing the
version only need to be re-linked, not recompiled. A preprocessor global
-DVERSION=foo rebuilds the whole project after each commit. A header
definition rebuilds all include sites.
LTO in the GNU toolchain is very broken on Windows, particular the
interaction of GCC "linker plugin" injected into Binutils bfd ld. The
gold ld we can't use since it's only for ELF executables.
There's nothing alarming here at all unless there's some miscompilation
and there doesn't seem to be any. The rest of the functional changes is
changing cc -> c of that object file, and moving library definition
after the source file is already generated.
|
|
Due to typo axis index got saved as the same .ini name as another index.
Spotted-by: @Ec0nomist
Confirmed-by: @huliqan
Issue: #327
|
|
Spotted-by: @Ec0nomist
Issue: #327
|
|
I'm unsure whether the context object for QObject::connect overload
we're using in enum support is treated as the connection's target thread
at all. Docs are silent on this.
In the meantime, no crashes or other anomalies observed, while violating
Qt thread safety invariants resulted in immediate crashes beforehand. So
let's use Qt::AutoConnection and not worry for the time being.
|
|
|
|
|
|
Issue: #327
|
|
|
|
|
|
The api callee already takes care of that so remove the "ok" argument.
|
|
|
|
|
|
The resync code already worked without that.
|
|
|
|
We don't need to move back the datagram since we're processing the
original.
|
|
|
|
|
|
It's not used anywhere.
|
|
|
|
Issue: #327
|
|
|
|
|
|
|
|
Issue: #349
|
|
|
|
See:
https://github.com/opentrack/opentrack/issues/327#issuecomment-215991810
|
|
Don't prepend existing remaining data racing with add new data. Expose
the lock as a public member.
|
|
We can't have async io on the main thread because QSerialPort's
readyRead() signal can fire constantly, thus consuming all CPU time.
We can't sleep in the main thread either as that blocks too many things.
We can't ignore readyRead() invocations over a threshold as that'll make
us lose some of data notifications.
Refactor hatire to put IO on a thread. Since this is a separate Qt event
loop, we may sleep in there.
Further, add a debug mode reading data from a file, as if it came from a
serial-attached device.
Issue: #327
|
|
Remove redundant operation on the frame.
|
|
The following keybindings are now implemented:
- restart tracking. if not started, starts.
- toggle (keep position) while key held
- zero (keep zero) while key held
The latter two options only work for Windows as libqxt doesn't support
them.
Closes #291
|
|
"no video" wasn't clearly indicating that no tracking was done. Some first
time users had hard times figuring out tracking had to be started.
@sthalik: I've put an image mimicking what you did for "no video", feel
free to change it or switch to plain text instead.
|
|
When an user installs opentrack on a system which has RealSense F200 or
SR300 camera drivers installed, the installer now proposes to install the
proper runtime after having displayed its EULA.
|
|
|
|
It's enabled only for automatic thresholding. With it on, it's possible
to keep tracking in normal light conditions without changing gain or
exposure beforehand.
It won't function on badly overexposed images, or with other bright
white colors in the frame. It should function on somewhat overexposed
images.
CPU usage is somewhat high, even taking advantage of all OpenCV SIMD
goodness as per the code. We can revert the change if user reception is
bad.
|
|
|
|
|
|
|
|
Issue: #342
|