diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2016-12-09 12:45:29 +0100 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2016-12-09 12:54:55 +0100 | 
| commit | 5a5cf4bac9af84252b28e56b15b71708f8cd3b7b (patch) | |
| tree | 19c4561fcf66ab32b2a629f74157f815c7b464d5 /logic | |
| parent | bad34742736f7d9ee781f77766629140a49d6f28 (diff) | |
gui, logic: allow toggle neck displacement
It was only possible to zero the values to turn it off.
Diffstat (limited to 'logic')
| -rw-r--r-- | logic/main-settings.hpp | 2 | ||||
| -rw-r--r-- | logic/tracker.cpp | 7 | 
2 files changed, 6 insertions, 3 deletions
diff --git a/logic/main-settings.hpp b/logic/main-settings.hpp index ea1d93f3..749f6d25 100644 --- a/logic/main-settings.hpp +++ b/logic/main-settings.hpp @@ -75,6 +75,7 @@ struct main_settings      value<bool> center_at_startup;      value<int> center_method;      value<int> neck_y, neck_z; +    value<bool> neck_enable;      key_opts key_start_tracking, key_stop_tracking, key_toggle_tracking, key_restart_tracking;      key_opts key_center, key_toggle, key_zero;      key_opts key_toggle_press, key_zero_press; @@ -107,6 +108,7 @@ struct main_settings          center_method(b, "centering-method", true),          neck_y(b, "neck-height", 0),          neck_z(b, "neck-depth", 0), +        neck_enable(b, "neck-enable", false),          key_start_tracking(b, "start-tracking"),          key_stop_tracking(b, "stop-tracking"),          key_toggle_tracking(b, "toggle-tracking"), diff --git a/logic/tracker.cpp b/logic/tracker.cpp index 25e067a7..332828a9 100644 --- a/logic/tracker.cpp +++ b/logic/tracker.cpp @@ -281,15 +281,16 @@ void Tracker::logic()          euler_t neck, rel; +        if (s.neck_enable)          {              double ny = s.neck_y, nz = -s.neck_z;              if (ny != 0 || nz != 0)              {                  const rmat R = euler_to_rmat( -                                   euler_t(value(Yaw)   * d2r, -                                           value(Pitch) * d2r, -                                           value(Roll)  * d2r)); +                       euler_t(value(Yaw)   * d2r, +                               value(Pitch) * d2r, +                               value(Roll)  * d2r));                  euler_t xyz(0, ny, nz);                  t_compensate(R, xyz, xyz, false, false, false);                  neck(TX) = xyz(TX);  | 
