diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 34ad767460..72a9281564 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1447,30 +1447,30 @@ void MyAvatar::setArmControllerPosesInSensorFrame(const controller::Pose& left, _rightArmControllerPoseInSensorFrameCache.set(right); } -controller::Pose MyAvatar::getLeftArmControllerInSensorFrame() const { +controller::Pose MyAvatar::getLeftArmControllerPoseInSensorFrame() const { return _leftArmControllerPoseInSensorFrameCache.get(); } -controller::Pose MyAvatar::getRightArmControllerInSensorFrame() const { +controller::Pose MyAvatar::getRightArmControllerPoseInSensorFrame() const { return _rightArmControllerPoseInSensorFrameCache.get(); } -controller::Pose MyAvatar::getLeftArmControllerInWorldFrame() const { - return getLeftArmControllerInSensorFrame().transform(getSensorToWorldMatrix()); +controller::Pose MyAvatar::getLeftArmControllerPoseInWorldFrame() const { + return getLeftArmControllerPoseInSensorFrame().transform(getSensorToWorldMatrix()); } -controller::Pose MyAvatar::getRightArmControllerInWorldFrame() const { - return getRightArmControllerInSensorFrame().transform(getSensorToWorldMatrix()); +controller::Pose MyAvatar::getRightArmControllerPoseInWorldFrame() const { + return getRightArmControllerPoseInSensorFrame().transform(getSensorToWorldMatrix()); } -controller::Pose MyAvatar::getLeftArmControllerInAvatarFrame() const { +controller::Pose MyAvatar::getLeftArmControllerPoseInAvatarFrame() const { glm::mat4 worldToAvatarMat = glm::inverse(createMatFromQuatAndPos(getOrientation(), getPosition())); - return getLeftArmControllerInWorldFrame().transform(worldToAvatarMat); + return getLeftArmControllerPoseInWorldFrame().transform(worldToAvatarMat); } -controller::Pose MyAvatar::getRightArmControllerInAvatarFrame() const { +controller::Pose MyAvatar::getRightArmControllerPoseInAvatarFrame() const { glm::mat4 worldToAvatarMat = glm::inverse(createMatFromQuatAndPos(getOrientation(), getPosition())); - return getRightArmControllerInWorldFrame().transform(worldToAvatarMat); + return getRightArmControllerPoseInWorldFrame().transform(worldToAvatarMat); } void MyAvatar::updateMotors() { diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 9bbdbd7b23..e0a3a1559e 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -472,12 +472,12 @@ public: controller::Pose getHeadControllerPoseInAvatarFrame() const; void setArmControllerPosesInSensorFrame(const controller::Pose& left, const controller::Pose& right); - controller::Pose getLeftArmControllerInSensorFrame() const; - controller::Pose getRightArmControllerInSensorFrame() const; - controller::Pose getLeftArmControllerInWorldFrame() const; - controller::Pose getRightArmControllerInWorldFrame() const; - controller::Pose getLeftArmControllerInAvatarFrame() const; - controller::Pose getRightArmControllerInAvatarFrame() const; + controller::Pose getLeftArmControllerPoseInSensorFrame() const; + controller::Pose getRightArmControllerPoseInSensorFrame() const; + controller::Pose getLeftArmControllerPoseInWorldFrame() const; + controller::Pose getRightArmControllerPoseInWorldFrame() const; + controller::Pose getLeftArmControllerPoseInAvatarFrame() const; + controller::Pose getRightArmControllerPoseInAvatarFrame() const; bool hasDriveInput() const; diff --git a/interface/src/avatar/MySkeletonModel.cpp b/interface/src/avatar/MySkeletonModel.cpp index ea97e3d0fe..a88631f47f 100644 --- a/interface/src/avatar/MySkeletonModel.cpp +++ b/interface/src/avatar/MySkeletonModel.cpp @@ -92,7 +92,7 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) { headParams.spine2Enabled = false; } - auto avatarRightArmPose = myAvatar->getRightArmControllerInAvatarFrame(); + auto avatarRightArmPose = myAvatar->getRightArmControllerPoseInAvatarFrame(); if (avatarRightArmPose.isValid()) { glm::mat4 rightArmMat = Matrices::Y_180 * createMatFromQuatAndPos(avatarRightArmPose.getRotation(), avatarRightArmPose.getTranslation()); headParams.rightArmPosition = extractTranslation(rightArmMat); @@ -102,7 +102,7 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) { headParams.rightArmEnabled = false; } - auto avatarLeftArmPose = myAvatar->getLeftArmControllerInAvatarFrame(); + auto avatarLeftArmPose = myAvatar->getLeftArmControllerPoseInAvatarFrame(); if (avatarLeftArmPose.isValid()) { glm::mat4 leftArmMat = Matrices::Y_180 * createMatFromQuatAndPos(avatarLeftArmPose.getRotation(), avatarLeftArmPose.getTranslation()); headParams.leftArmPosition = extractTranslation(leftArmMat); diff --git a/plugins/openvr/src/ViveControllerManager.cpp b/plugins/openvr/src/ViveControllerManager.cpp index 016b2a1c55..2563e8f218 100644 --- a/plugins/openvr/src/ViveControllerManager.cpp +++ b/plugins/openvr/src/ViveControllerManager.cpp @@ -661,11 +661,7 @@ void ViveControllerManager::InputDevice::calibrateShoulders(glm::mat4& defaultTo _jointToPuckMap[controller::RIGHT_ARM] = firstShoulder.first; _pucksOffset[firstShoulder.first] = computeOffset(defaultToReferenceMat, inputCalibration.defaultRightArm, firstShoulder.second); } -} - -void ViveControllerManager::InputDevice::calibrateHead(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration) { - int headIndex = _validTrackedObjects.size() - 1; -} +} void ViveControllerManager::InputDevice::loadSettings() { diff --git a/plugins/openvr/src/ViveControllerManager.h b/plugins/openvr/src/ViveControllerManager.h index bc9558beaa..a76adaa8f9 100644 --- a/plugins/openvr/src/ViveControllerManager.h +++ b/plugins/openvr/src/ViveControllerManager.h @@ -80,6 +80,15 @@ private: const vec3& angularVelocity); void partitionTouchpad(int sButton, int xAxis, int yAxis, int centerPsuedoButton, int xPseudoButton, int yPseudoButton); void printDeviceTrackingResultChange(uint32_t deviceIndex); + void setConfigFromString(const QString& value); + void loadSettings(); + void saveSettings() const; + void calibrateFeet(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration); + void calibrateHips(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration); + void calibrateChest(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration); + + void calibrateShoulders(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration, + int firstShoulderIndex, int secondShoulderIndex); class FilteredStick { public: @@ -106,13 +115,10 @@ private: }; enum class Config { Auto, - Head, Feet, - Shoulders, FeetAndHips, FeetHipsAndChest, FeetHipsAndShoulders, - FeetHipsChestAndHead }; Config _config { Config::Auto }; Config _preferedConfig { Config::Auto }; @@ -139,21 +145,9 @@ private: bool _triggersPressedHandled { false }; bool _calibrated { false }; bool _timeTilCalibrationSet { false }; - bool overrideHands { false }; mutable std::recursive_mutex _lock; QString configToString(Config config); - void setConfigFromString(const QString& value); - void loadSettings(); - void saveSettings() const; - void calibrateFeet(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration); - void calibrateHips(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration); - void calibrateChest(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration); - - void calibrateShoulders(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration, - int firstShoulderIndex, int secondShoulderIndex); - - void calibrateHead(glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration); friend class ViveControllerManager; };