diff --git a/libraries/controllers/src/controllers/Pose.cpp b/libraries/controllers/src/controllers/Pose.cpp index e4674735b0..112e6e01a9 100644 --- a/libraries/controllers/src/controllers/Pose.cpp +++ b/libraries/controllers/src/controllers/Pose.cpp @@ -12,7 +12,7 @@ namespace controller { Pose::Pose(const vec3& translation, const quat& rotation, const vec3& velocity, const quat& angularVelocity) : - translation(translation), rotation(rotation), velocity(velocity), angularVelocity(angularVelocity) { } + translation(translation), rotation(rotation), velocity(velocity), angularVelocity(angularVelocity), valid (true) { } bool Pose::operator==(const Pose& right) const { // invalid poses return false for comparison, even against identical invalid poses, like NaN diff --git a/libraries/controllers/src/controllers/UserInputMapper.cpp b/libraries/controllers/src/controllers/UserInputMapper.cpp index 0c47a2dce8..6ef64fc784 100755 --- a/libraries/controllers/src/controllers/UserInputMapper.cpp +++ b/libraries/controllers/src/controllers/UserInputMapper.cpp @@ -205,6 +205,9 @@ public: virtual Pose pose() override { return _currentPose; } virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) override { _currentPose = newValue; + if (!_currentPose.isValid()) { + return; + } if (!(_input == Input::INVALID_INPUT)) { auto userInputMapper = DependencyManager::get(); userInputMapper->setActionState(Action(_input.getChannel()), _currentPose);