Code review

This commit is contained in:
David Rowe 2017-06-13 12:39:46 +12:00
parent 3e126c0517
commit 5eee2d8352
2 changed files with 20 additions and 20 deletions

View file

@ -1168,20 +1168,20 @@ void Rig::updateFromHandAndFeetParameters(const HandAndFeetParameters& params, f
if (params.isLeftEnabled) { if (params.isLeftEnabled) {
if (!_isLeftHandControlled) { if (!_isLeftHandControlled) {
_leftHandControlDuration = CONTROL_DURATION; _leftHandControlTimeRemaining = CONTROL_DURATION;
_isLeftHandControlled = true; _isLeftHandControlled = true;
} }
glm::vec3 handPosition = params.leftPosition; glm::vec3 handPosition = params.leftPosition;
glm::quat handRotation = params.leftOrientation; glm::quat handRotation = params.leftOrientation;
if (_leftHandControlDuration > 0.0f) { if (_leftHandControlTimeRemaining > 0.0f) {
// Move hand from non-controlled position to controlled position. // Move hand from non-controlled position to controlled position.
_leftHandControlDuration = std::max(_leftHandControlDuration - dt, 0.0f); _leftHandControlTimeRemaining = std::max(_leftHandControlTimeRemaining - dt, 0.0f);
auto ikNode = getAnimInverseKinematicsNode(); auto ikNode = getAnimInverseKinematicsNode();
if (ikNode) { if (ikNode) {
AnimPose handPose(Vectors::ONE, handRotation, handPosition); AnimPose handPose(Vectors::ONE, handRotation, handPosition);
float alpha = 1.0f - _leftHandControlDuration / CONTROL_DURATION; float alpha = 1.0f - _leftHandControlTimeRemaining / CONTROL_DURATION;
const AnimPose geometryToRigTransform(_geometryToRigTransform); const AnimPose geometryToRigTransform(_geometryToRigTransform);
AnimPose uncontrolledHandPose = geometryToRigTransform * ikNode->getUncontrolledLeftHandPose(); AnimPose uncontrolledHandPose = geometryToRigTransform * ikNode->getUncontrolledLeftHandPose();
::blend(1, &uncontrolledHandPose, &handPose, alpha, &handPose); ::blend(1, &uncontrolledHandPose, &handPose, alpha, &handPose);
@ -1205,16 +1205,16 @@ void Rig::updateFromHandAndFeetParameters(const HandAndFeetParameters& params, f
_lastLeftHandControlledPose = AnimPose(Vectors::ONE, handRotation, handPosition); _lastLeftHandControlledPose = AnimPose(Vectors::ONE, handRotation, handPosition);
} else { } else {
if (_isLeftHandControlled) { if (_isLeftHandControlled) {
_leftHandRelaxDuration = RELAX_DURATION; _leftHandRelaxTimeRemaining = RELAX_DURATION;
_isLeftHandControlled = false; _isLeftHandControlled = false;
} }
if (_leftHandRelaxDuration > 0.0f) { if (_leftHandRelaxTimeRemaining > 0.0f) {
// Move hand from controlled position to non-controlled position. // Move hand from controlled position to non-controlled position.
_leftHandRelaxDuration = std::max(_leftHandRelaxDuration - dt, 0.0f); _leftHandRelaxTimeRemaining = std::max(_leftHandRelaxTimeRemaining - dt, 0.0f);
auto ikNode = getAnimInverseKinematicsNode(); auto ikNode = getAnimInverseKinematicsNode();
if (ikNode) { if (ikNode) {
float alpha = 1.0f - _leftHandRelaxDuration / RELAX_DURATION; float alpha = 1.0f - _leftHandRelaxTimeRemaining / RELAX_DURATION;
const AnimPose geometryToRigTransform(_geometryToRigTransform); const AnimPose geometryToRigTransform(_geometryToRigTransform);
AnimPose uncontrolledHandPose = geometryToRigTransform * ikNode->getUncontrolledLeftHandPose(); AnimPose uncontrolledHandPose = geometryToRigTransform * ikNode->getUncontrolledLeftHandPose();
AnimPose handPose; AnimPose handPose;
@ -1232,20 +1232,20 @@ void Rig::updateFromHandAndFeetParameters(const HandAndFeetParameters& params, f
if (params.isRightEnabled) { if (params.isRightEnabled) {
if (!_isRightHandControlled) { if (!_isRightHandControlled) {
_rightHandControlDuration = CONTROL_DURATION; _rightHandControlTimeRemaining = CONTROL_DURATION;
_isRightHandControlled = true; _isRightHandControlled = true;
} }
glm::vec3 handPosition = params.rightPosition; glm::vec3 handPosition = params.rightPosition;
glm::quat handRotation = params.rightOrientation; glm::quat handRotation = params.rightOrientation;
if (_rightHandControlDuration > 0.0f) { if (_rightHandControlTimeRemaining > 0.0f) {
// Move hand from non-controlled position to controlled position. // Move hand from non-controlled position to controlled position.
_rightHandControlDuration = std::max(_rightHandControlDuration - dt, 0.0f); _rightHandControlTimeRemaining = std::max(_rightHandControlTimeRemaining - dt, 0.0f);
auto ikNode = getAnimInverseKinematicsNode(); auto ikNode = getAnimInverseKinematicsNode();
if (ikNode) { if (ikNode) {
AnimPose handPose(Vectors::ONE, handRotation, handPosition); AnimPose handPose(Vectors::ONE, handRotation, handPosition);
float alpha = 1.0f - _rightHandControlDuration / CONTROL_DURATION; float alpha = 1.0f - _rightHandControlTimeRemaining / CONTROL_DURATION;
const AnimPose geometryToRigTransform(_geometryToRigTransform); const AnimPose geometryToRigTransform(_geometryToRigTransform);
AnimPose uncontrolledHandPose = geometryToRigTransform * ikNode->getUncontrolledRightHandPose(); AnimPose uncontrolledHandPose = geometryToRigTransform * ikNode->getUncontrolledRightHandPose();
::blend(1, &uncontrolledHandPose, &handPose, alpha, &handPose); ::blend(1, &uncontrolledHandPose, &handPose, alpha, &handPose);
@ -1269,16 +1269,16 @@ void Rig::updateFromHandAndFeetParameters(const HandAndFeetParameters& params, f
_lastRightHandControlledPose = AnimPose(Vectors::ONE, handRotation, handPosition); _lastRightHandControlledPose = AnimPose(Vectors::ONE, handRotation, handPosition);
} else { } else {
if (_isRightHandControlled) { if (_isRightHandControlled) {
_rightHandRelaxDuration = RELAX_DURATION; _rightHandRelaxTimeRemaining = RELAX_DURATION;
_isRightHandControlled = false; _isRightHandControlled = false;
} }
if (_rightHandRelaxDuration > 0.0f) { if (_rightHandRelaxTimeRemaining > 0.0f) {
// Move hand from controlled position to non-controlled position. // Move hand from controlled position to non-controlled position.
_rightHandRelaxDuration = std::max(_rightHandRelaxDuration - dt, 0.0f); _rightHandRelaxTimeRemaining = std::max(_rightHandRelaxTimeRemaining - dt, 0.0f);
auto ikNode = getAnimInverseKinematicsNode(); auto ikNode = getAnimInverseKinematicsNode();
if (ikNode) { if (ikNode) {
float alpha = 1.0f - _rightHandRelaxDuration / RELAX_DURATION; float alpha = 1.0f - _rightHandRelaxTimeRemaining / RELAX_DURATION;
const AnimPose geometryToRigTransform(_geometryToRigTransform); const AnimPose geometryToRigTransform(_geometryToRigTransform);
AnimPose uncontrolledHandPose = geometryToRigTransform * ikNode->getUncontrolledRightHandPose(); AnimPose uncontrolledHandPose = geometryToRigTransform * ikNode->getUncontrolledRightHandPose();
AnimPose handPose; AnimPose handPose;

View file

@ -354,10 +354,10 @@ private:
bool _isLeftHandControlled { false }; bool _isLeftHandControlled { false };
bool _isRightHandControlled { false }; bool _isRightHandControlled { false };
float _leftHandControlDuration{ 0.0f }; float _leftHandControlTimeRemaining { 0.0f };
float _rightHandControlDuration{ 0.0f }; float _rightHandControlTimeRemaining { 0.0f };
float _leftHandRelaxDuration{ 0.0f }; float _leftHandRelaxTimeRemaining { 0.0f };
float _rightHandRelaxDuration { 0.0f }; float _rightHandRelaxTimeRemaining { 0.0f };
AnimPose _lastLeftHandControlledPose; AnimPose _lastLeftHandControlledPose;
AnimPose _lastRightHandControlledPose; AnimPose _lastRightHandControlledPose;
}; };