clean up code

This commit is contained in:
Dante Ruiz 2017-05-25 21:59:06 +01:00
parent 8cb9bfcc81
commit 108c444cc7
5 changed files with 28 additions and 38 deletions

View file

@ -1447,30 +1447,30 @@ void MyAvatar::setArmControllerPosesInSensorFrame(const controller::Pose& left,
_rightArmControllerPoseInSensorFrameCache.set(right); _rightArmControllerPoseInSensorFrameCache.set(right);
} }
controller::Pose MyAvatar::getLeftArmControllerInSensorFrame() const { controller::Pose MyAvatar::getLeftArmControllerPoseInSensorFrame() const {
return _leftArmControllerPoseInSensorFrameCache.get(); return _leftArmControllerPoseInSensorFrameCache.get();
} }
controller::Pose MyAvatar::getRightArmControllerInSensorFrame() const { controller::Pose MyAvatar::getRightArmControllerPoseInSensorFrame() const {
return _rightArmControllerPoseInSensorFrameCache.get(); return _rightArmControllerPoseInSensorFrameCache.get();
} }
controller::Pose MyAvatar::getLeftArmControllerInWorldFrame() const { controller::Pose MyAvatar::getLeftArmControllerPoseInWorldFrame() const {
return getLeftArmControllerInSensorFrame().transform(getSensorToWorldMatrix()); return getLeftArmControllerPoseInSensorFrame().transform(getSensorToWorldMatrix());
} }
controller::Pose MyAvatar::getRightArmControllerInWorldFrame() const { controller::Pose MyAvatar::getRightArmControllerPoseInWorldFrame() const {
return getRightArmControllerInSensorFrame().transform(getSensorToWorldMatrix()); return getRightArmControllerPoseInSensorFrame().transform(getSensorToWorldMatrix());
} }
controller::Pose MyAvatar::getLeftArmControllerInAvatarFrame() const { controller::Pose MyAvatar::getLeftArmControllerPoseInAvatarFrame() const {
glm::mat4 worldToAvatarMat = glm::inverse(createMatFromQuatAndPos(getOrientation(), getPosition())); 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())); glm::mat4 worldToAvatarMat = glm::inverse(createMatFromQuatAndPos(getOrientation(), getPosition()));
return getRightArmControllerInWorldFrame().transform(worldToAvatarMat); return getRightArmControllerPoseInWorldFrame().transform(worldToAvatarMat);
} }
void MyAvatar::updateMotors() { void MyAvatar::updateMotors() {

View file

@ -472,12 +472,12 @@ public:
controller::Pose getHeadControllerPoseInAvatarFrame() const; controller::Pose getHeadControllerPoseInAvatarFrame() const;
void setArmControllerPosesInSensorFrame(const controller::Pose& left, const controller::Pose& right); void setArmControllerPosesInSensorFrame(const controller::Pose& left, const controller::Pose& right);
controller::Pose getLeftArmControllerInSensorFrame() const; controller::Pose getLeftArmControllerPoseInSensorFrame() const;
controller::Pose getRightArmControllerInSensorFrame() const; controller::Pose getRightArmControllerPoseInSensorFrame() const;
controller::Pose getLeftArmControllerInWorldFrame() const; controller::Pose getLeftArmControllerPoseInWorldFrame() const;
controller::Pose getRightArmControllerInWorldFrame() const; controller::Pose getRightArmControllerPoseInWorldFrame() const;
controller::Pose getLeftArmControllerInAvatarFrame() const; controller::Pose getLeftArmControllerPoseInAvatarFrame() const;
controller::Pose getRightArmControllerInAvatarFrame() const; controller::Pose getRightArmControllerPoseInAvatarFrame() const;
bool hasDriveInput() const; bool hasDriveInput() const;

View file

@ -92,7 +92,7 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) {
headParams.spine2Enabled = false; headParams.spine2Enabled = false;
} }
auto avatarRightArmPose = myAvatar->getRightArmControllerInAvatarFrame(); auto avatarRightArmPose = myAvatar->getRightArmControllerPoseInAvatarFrame();
if (avatarRightArmPose.isValid()) { if (avatarRightArmPose.isValid()) {
glm::mat4 rightArmMat = Matrices::Y_180 * createMatFromQuatAndPos(avatarRightArmPose.getRotation(), avatarRightArmPose.getTranslation()); glm::mat4 rightArmMat = Matrices::Y_180 * createMatFromQuatAndPos(avatarRightArmPose.getRotation(), avatarRightArmPose.getTranslation());
headParams.rightArmPosition = extractTranslation(rightArmMat); headParams.rightArmPosition = extractTranslation(rightArmMat);
@ -102,7 +102,7 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) {
headParams.rightArmEnabled = false; headParams.rightArmEnabled = false;
} }
auto avatarLeftArmPose = myAvatar->getLeftArmControllerInAvatarFrame(); auto avatarLeftArmPose = myAvatar->getLeftArmControllerPoseInAvatarFrame();
if (avatarLeftArmPose.isValid()) { if (avatarLeftArmPose.isValid()) {
glm::mat4 leftArmMat = Matrices::Y_180 * createMatFromQuatAndPos(avatarLeftArmPose.getRotation(), avatarLeftArmPose.getTranslation()); glm::mat4 leftArmMat = Matrices::Y_180 * createMatFromQuatAndPos(avatarLeftArmPose.getRotation(), avatarLeftArmPose.getTranslation());
headParams.leftArmPosition = extractTranslation(leftArmMat); headParams.leftArmPosition = extractTranslation(leftArmMat);

View file

@ -661,11 +661,7 @@ void ViveControllerManager::InputDevice::calibrateShoulders(glm::mat4& defaultTo
_jointToPuckMap[controller::RIGHT_ARM] = firstShoulder.first; _jointToPuckMap[controller::RIGHT_ARM] = firstShoulder.first;
_pucksOffset[firstShoulder.first] = computeOffset(defaultToReferenceMat, inputCalibration.defaultRightArm, firstShoulder.second); _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() { void ViveControllerManager::InputDevice::loadSettings() {

View file

@ -80,6 +80,15 @@ private:
const vec3& angularVelocity); const vec3& angularVelocity);
void partitionTouchpad(int sButton, int xAxis, int yAxis, int centerPsuedoButton, int xPseudoButton, int yPseudoButton); void partitionTouchpad(int sButton, int xAxis, int yAxis, int centerPsuedoButton, int xPseudoButton, int yPseudoButton);
void printDeviceTrackingResultChange(uint32_t deviceIndex); 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 { class FilteredStick {
public: public:
@ -106,13 +115,10 @@ private:
}; };
enum class Config { enum class Config {
Auto, Auto,
Head,
Feet, Feet,
Shoulders,
FeetAndHips, FeetAndHips,
FeetHipsAndChest, FeetHipsAndChest,
FeetHipsAndShoulders, FeetHipsAndShoulders,
FeetHipsChestAndHead
}; };
Config _config { Config::Auto }; Config _config { Config::Auto };
Config _preferedConfig { Config::Auto }; Config _preferedConfig { Config::Auto };
@ -139,21 +145,9 @@ private:
bool _triggersPressedHandled { false }; bool _triggersPressedHandled { false };
bool _calibrated { false }; bool _calibrated { false };
bool _timeTilCalibrationSet { false }; bool _timeTilCalibrationSet { false };
bool overrideHands { false };
mutable std::recursive_mutex _lock; mutable std::recursive_mutex _lock;
QString configToString(Config config); 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; friend class ViveControllerManager;
}; };