From cfa7df7d1a27275d47b50424692d87ae5acbe972 Mon Sep 17 00:00:00 2001 From: dooglifeSF <41022919+dooglifeSF@users.noreply.github.com> Date: Tue, 8 Oct 2019 16:14:21 -0700 Subject: [PATCH] Refactor the if-logic to remove complexity --- libraries/animation/src/Rig.cpp | 52 ++++++++++++++++----------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index 7f83fb5218..8d78ff1418 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -2163,25 +2163,31 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo //deadzone constant #define INPUT_DEADZONE_THRESHOLD 0.05f - if (abs(params.inputZ) > INPUT_DEADZONE_THRESHOLD && abs(params.inputZ) >= abs(params.inputX)) { - if (params.inputZ > INPUT_DEADZONE_THRESHOLD) { - // forward - _animVars.set("isInputForward", true); - _animVars.set("isInputBackward", false); - _animVars.set("isInputRight", false); - _animVars.set("isInputLeft", false); - _animVars.set("isNotInput", false); - } - else { - // backward - _animVars.set("isInputForward", false); - _animVars.set("isInputBackward", true); - _animVars.set("isInputRight", false); - _animVars.set("isInputLeft", false); - _animVars.set("isNotInput", false); - } - } else if (abs(params.inputX) > INPUT_DEADZONE_THRESHOLD && abs(params.inputX) > abs(params.inputZ)) { - if (params.inputX > INPUT_DEADZONE_THRESHOLD) { + if (abs(params.inputX) <= INPUT_DEADZONE_THRESHOLD && abs(params.inputZ) <= INPUT_DEADZONE_THRESHOLD) { + // no WASD input + _animVars.set("isInputForward", false); + _animVars.set("isInputBackward", false); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", true); + } else if ( abs(params.inputZ) >= abs(params.inputX) ) { + if (params.inputZ > 0) { + // forward + _animVars.set("isInputForward", true); + _animVars.set("isInputBackward", false); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", false); + } else { + // backward + _animVars.set("isInputForward", false); + _animVars.set("isInputBackward", true); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", false); + } + } else { + if (params.inputX > 0) { // right _animVars.set("isInputForward", false); _animVars.set("isInputBackward", false); @@ -2196,15 +2202,9 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo _animVars.set("isInputLeft", true); _animVars.set("isNotInput", false); } - } else if (params.inputX <= INPUT_DEADZONE_THRESHOLD && params.inputZ <= INPUT_DEADZONE_THRESHOLD) { - // no WASD input - _animVars.set("isInputForward", false); - _animVars.set("isInputBackward", false); - _animVars.set("isInputRight", false); - _animVars.set("isInputLeft", false); - _animVars.set("isNotInput", true); } + _headEnabled = params.primaryControllerFlags[PrimaryControllerType_Head] & (uint8_t)ControllerFlags::Enabled; bool leftHandEnabled = params.primaryControllerFlags[PrimaryControllerType_LeftHand] & (uint8_t)ControllerFlags::Enabled; bool rightHandEnabled = params.primaryControllerFlags[PrimaryControllerType_RightHand] & (uint8_t)ControllerFlags::Enabled;