diff --git a/interface/src/Head.cpp b/interface/src/Head.cpp index 1bad6e2021..35a3c547b7 100755 --- a/interface/src/Head.cpp +++ b/interface/src/Head.cpp @@ -961,13 +961,13 @@ void Head::updateHandMovement() // adjust right hand and elbow according to hand offset //---------------------------------------------------------------- avatar.bone[ AVATAR_BONE_RIGHT_HAND ].worldPosition += handOffset; - glm::dvec3 armVector = avatar.bone[ AVATAR_BONE_RIGHT_HAND ].worldPosition; + glm::vec3 armVector = avatar.bone[ AVATAR_BONE_RIGHT_HAND ].worldPosition; armVector -= avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].worldPosition; //------------------------------------------------------------------------------- // test to see if right hand is being dragged beyond maximum arm length //------------------------------------------------------------------------------- - double distance = glm::length( armVector ); + float distance = glm::length( armVector ); //------------------------------------------------------------------------------- @@ -979,10 +979,10 @@ void Head::updateHandMovement() // reset right hand to be constrained to maximum arm length //------------------------------------------------------------------------------- avatar.bone[ AVATAR_BONE_RIGHT_HAND ].worldPosition = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].worldPosition; - glm::dvec3 armNormal = armVector / distance; - armVector = armNormal * avatar.maxArmLength; + glm::vec3 armNormal = armVector / distance; + armVector = armNormal * (float)avatar.maxArmLength; distance = avatar.maxArmLength; - glm::dvec3 constrainedPosition = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].worldPosition; + glm::vec3 constrainedPosition = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].worldPosition; constrainedPosition += armVector; avatar.bone[ AVATAR_BONE_RIGHT_HAND ].worldPosition = constrainedPosition; } @@ -990,8 +990,8 @@ void Head::updateHandMovement() //----------------------------------------------------------------------------- // set elbow position //----------------------------------------------------------------------------- - glm::dvec3 newElbowPosition = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].worldPosition; - newElbowPosition += armVector * ONE_HALF; + glm::vec3 newElbowPosition = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].worldPosition; + newElbowPosition += armVector * (float)ONE_HALF; glm::dvec3 perpendicular = glm::dvec3( -armVector.y, armVector.x, armVector.z ); newElbowPosition += perpendicular * ( 1.0 - ( avatar.maxArmLength / distance ) ) * ONE_HALF; avatar.bone[ AVATAR_BONE_RIGHT_FOREARM ].worldPosition = newElbowPosition; @@ -1005,21 +1005,57 @@ void Head::renderBody() { glColor3fv(skinColor); + // Render bones as spheres for (int b=0; b