diff options
| -rw-r--r-- | logic/pipeline.cpp | 9 | ||||
| -rw-r--r-- | logic/pipeline.hpp | 2 | 
2 files changed, 7 insertions, 4 deletions
| diff --git a/logic/pipeline.cpp b/logic/pipeline.cpp index 105e672a..4756db3e 100644 --- a/logic/pipeline.cpp +++ b/logic/pipeline.cpp @@ -114,7 +114,7 @@ Pose reltrans::apply_pipeline(reltrans_state state, const Pose& value,              // dynamic neck              if (neck_enable)              { -                const euler_t neck = apply_neck(value, -neck_z); +                const euler_t neck = apply_neck(value, -neck_z, disable(TZ));                  for (unsigned k = 0; k < 3; k++)                      rel(k) += neck(k); @@ -169,7 +169,7 @@ Pose reltrans::apply_pipeline(reltrans_state state, const Pose& value,          // dynamic neck          if (neck_enable)          { -            const euler_t neck = apply_neck(value, -neck_z); +            const euler_t neck = apply_neck(value, -neck_z, disable(TZ));              for (unsigned k = 0; k < 3; k++)                  rel(k) += neck(k); @@ -182,7 +182,7 @@ Pose reltrans::apply_pipeline(reltrans_state state, const Pose& value,      };  } -euler_t reltrans::apply_neck(const Pose& value, int nz) const +euler_t reltrans::apply_neck(const Pose& value, int nz, bool disable_tz) const  {      euler_t neck; @@ -190,6 +190,9 @@ euler_t reltrans::apply_neck(const Pose& value, int nz) const      neck = rotate(R, { 0, 0, nz }, vec3_bool());      neck(TZ) = neck(TZ) - nz; +    if (disable_tz) +        neck(TZ) = 0; +      return neck;  } diff --git a/logic/pipeline.hpp b/logic/pipeline.hpp index 2fe0f64b..606a7bf6 100644 --- a/logic/pipeline.hpp +++ b/logic/pipeline.hpp @@ -57,7 +57,7 @@ public:                          const vec6_bool& disable, bool neck_enable, int neck_z);      warn_result_unused -    euler_t apply_neck(const Pose& value, int nz) const; +    euler_t apply_neck(const Pose& value, int nz, bool disable_tz) const;  };  using namespace time_units; | 
