diff options
Diffstat (limited to 'logic')
| -rw-r--r-- | logic/main-settings.hpp | 10 | ||||
| -rw-r--r-- | logic/tracker.cpp | 16 | 
2 files changed, 20 insertions, 6 deletions
| diff --git a/logic/main-settings.hpp b/logic/main-settings.hpp index ecb7cd5c..53c5fae1 100644 --- a/logic/main-settings.hpp +++ b/logic/main-settings.hpp @@ -67,9 +67,11 @@ struct main_settings  {      bundle b, b_map;      axis_opts a_x, a_y, a_z, a_yaw, a_pitch, a_roll; -    value<bool> tcomp_p, tcomp_disable_tz; +    value<bool> tcomp_p, tcomp_disable_tx, tcomp_disable_ty, tcomp_disable_tz; +    value<bool> tcomp_disable_src_yaw, tcomp_disable_src_pitch, tcomp_disable_src_roll;      value<bool> tray_enabled, tray_start;      value<int> camera_yaw, camera_pitch, camera_roll; +    value<bool> use_camera_offset_from_centering;      value<bool> center_at_startup;      value<int> center_method;      key_opts key_start_tracking, key_stop_tracking, key_toggle_tracking, key_restart_tracking; @@ -88,12 +90,18 @@ struct main_settings          a_pitch(b, b_map, "pitch", Pitch),          a_roll(b, b_map, "roll", Roll),          tcomp_p(b, "compensate-translation", true), +        tcomp_disable_tx(b, "compensate-translation-disable-x-axis", false), +        tcomp_disable_ty(b, "compensate-translation-disable-y-axis", false),          tcomp_disable_tz(b, "compensate-translation-disable-z-axis", false), +        tcomp_disable_src_yaw(b, "compensate-translation-disable-source-yaw", false), +        tcomp_disable_src_pitch(b, "compensate-translation-disable-source-pitch", false), +        tcomp_disable_src_roll(b, "compensate-translation-disable-source-roll", false),          tray_enabled(b, "use-system-tray", false),          tray_start(b, "start-in-tray", false),          camera_yaw(b, "camera-yaw", 0),          camera_pitch(b, "camera-pitch", 0),          camera_roll(b, "camera-roll", 0), +        use_camera_offset_from_centering(b, "use-camera-offset-from-centering", false),          center_at_startup(b, "center-at-startup", true),          center_method(b, "centering-method", true),          key_start_tracking(b, "start-tracking"), diff --git a/logic/tracker.cpp b/logic/tracker.cpp index 5733166a..a5892dd0 100644 --- a/logic/tracker.cpp +++ b/logic/tracker.cpp @@ -300,15 +300,21 @@ void Tracker::logic()      if (s.tcomp_p && !get(f_tcomp_disabled))      { +        const double tcomp_c[] = +        { +            double(!s.tcomp_disable_src_yaw), +            double(!s.tcomp_disable_src_pitch), +            double(!s.tcomp_disable_src_roll), +        };          euler_t value_(value(TX), value(TY), value(TZ));          t_compensate(euler_to_rmat( -                         euler_t(value(Yaw)   * d2r, -                                 value(Pitch) * d2r, -                                 value(Roll)  * d2r)), +                         euler_t(value(Yaw)   * d2r * tcomp_c[0], +                                 value(Pitch) * d2r * tcomp_c[1], +                                 value(Roll)  * d2r * tcomp_c[2])),                       value_,                       value_, -                     false, -                     false, +                     s.tcomp_disable_tx, +                     s.tcomp_disable_ty,                       s.tcomp_disable_tz);          if (is_nan(value_))              nanp = true; | 
