Age | Commit message (Collapse) | Author |
|
Fixed the sizes of the widgets in the main window. Removed the background fill in the pose-widget to better match the dark theme.
|
|
In the extreme version of OpenTrack-2.3.12, the Octopus pose is still displayed incorrectly.
I have fixed pose-widget. A video of the corrected pose-widget is available here:
https://youtu.be/my4_VOwGmq4
Fixed bugs:
- The turns and movements of the Octopussy are now performed truly independently of each other, as it should be in 6DOF.
- When cornering, there is no "gimbal lock" at Pitch = +/- 90 degrees.
- Fixed directions of axes of rotations and positions. Now the Octopus pose displays the actual direction of view on the plane.
- Fixed display of the back (green) surface of the Octopus. Previously, it was displayed mirrored.
Additional features:
- Applied "perspective projection", the picture becomes more voluminous.
- Added lighting effect from above, with the same purpose.
- Added background fill for the widget. This makes it possible to see the borders of the widget.
- Added X and Y axes. This helps to estimate how far the Octopus is deviated from the center.
- Added [Mirror] checkbox, mirroring positions and rotations. It is often more convenient to observe the Octopussy's mirror pose.
- If before compilation in the file "pose-widget.hpp" include line 19: "#define TEST", then a rectangular frame will be drawn around the Octopus. This is useful when testing a pose-widget to assess distortion and size.
|
|
Now it looks less like a frog.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This should really be using proper algebra.
|
|
|
|
It's probably half-broken though.
|
|
|
|
|
|
|
|
- replace `static constexpr inline' with `static constexpr'.
`inline' is implied.
- use braced initializer lists where applicable
- still missing `override' usages
|
|
|
|
No functional changes.
- add `override' everywhere where missing
- almost pass clang's `-Wweak-vtables'
- avoid some float/double conversions
- remove unused private members
- make signedness conversions explicit
- put stuff in right namespaces to aid analysis
|
|
|
|
|
|
No visible changes (hopefully).
|
|
use `cc_xx' rather than awkward synonyms.
|
|
Use more C++17 features where this helps any.
|
|
|
|
Remove cruft, adjust usages.
|
|
- 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.
|
|
cf. #746
|
|
Adjust usages.
|
|
We don't have 8-bit alpha in Qt anyway.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We can't expect bounds check to work, if depending on
floating-point dot product.
|
|
The shadow's not at fault.
cf.
https://github.com/opentrack/opentrack/issues/664#issuecomment-322397835
|
|
|
|
|
|
Due to Qt's implicit sharing, something goes wrong
when calling QImage::constBits().
It's likely related to to multithreading.
Strangely enough, `constBits()' shouldn't perform a
copy of the image according to Qt docs.
While here, remove the "offset" defensive coding. Also,
use a constant depth as to reduce confusion.
|
|
|
|
CPU usage of an empty tracker loop fell reliably
from 1% to .9%.
|
|
|