From 48da3f726e4aeaa3598d43d549a22adf5f563d27 Mon Sep 17 00:00:00 2001 From: Jeffrey Ventrella Date: Tue, 23 Apr 2013 21:07:40 -0700 Subject: [PATCH] fixed bug - didn't change bodyPosition in eve or voxel --- eve/src/main.cpp | 6 ++--- interface/src/Head.cpp | 35 ++++++++++++++++------------- voxel-server/src/VoxelAgentData.cpp | 2 +- voxel-server/src/main.cpp | 2 +- 4 files changed, 25 insertions(+), 20 deletions(-) diff --git a/eve/src/main.cpp b/eve/src/main.cpp index 6dfe9ea606..3e075f7ba0 100644 --- a/eve/src/main.cpp +++ b/eve/src/main.cpp @@ -113,7 +113,7 @@ int main(int argc, const char* argv[]) { // move eve away from the origin // pick a random point inside a 10x10 grid - eve.setBodyPosition(glm::vec3(randFloatInRange(-RANDOM_POSITION_MAX_DIMENSION, RANDOM_POSITION_MAX_DIMENSION), + eve.setPosition(glm::vec3(randFloatInRange(-RANDOM_POSITION_MAX_DIMENSION, RANDOM_POSITION_MAX_DIMENSION), 0, randFloatInRange(-RANDOM_POSITION_MAX_DIMENSION, RANDOM_POSITION_MAX_DIMENSION))); @@ -121,9 +121,9 @@ int main(int argc, const char* argv[]) { eve.setBodyYaw(0); // put her hand out so somebody can shake it - eve.setHandPosition(glm::vec3(eve.getBodyPosition()[0] - 0.2, + eve.setHandPosition(glm::vec3(eve.getPosition()[0] - 0.2, 0.25, - eve.getBodyPosition()[2] + 0.1)); + eve.getPosition()[2] + 0.1)); // read eve's audio data AudioInjector eveAudioInjector("eve.raw"); diff --git a/interface/src/Head.cpp b/interface/src/Head.cpp index f0c071b9ee..e2b8003a53 100644 --- a/interface/src/Head.cpp +++ b/interface/src/Head.cpp @@ -1128,24 +1128,29 @@ void Head::updateHandMovement( float deltaTime ) { setHandState(_mousePressed); + bool atLeastOneAvatarIsGrasping = false; + + if ( getHandState() == 1 ) { atLeastOneAvatarIsGrasping = true; } + if ( _isMine ) { + if ( _otherAvatar.handState == 1 ) { + atLeastOneAvatarIsGrasping = true; + } + } + //--------------------------------------------------------------------- // if holding hands with another avatar, add a force to the hand... //--------------------------------------------------------------------- - if (( getHandState() == 1 ) - || ( _otherAvatar.handState == 1 )) { - //if ( _usingBodySprings ) - { - if ( _nearOtherAvatar ) { - - glm::vec3 vectorToOtherHand = _otherAvatar.handPosition - _handHolding.position; - glm::vec3 vectorToMyHand = _bone[ AVATAR_BONE_RIGHT_HAND ].position - _handHolding.position; - - _handHolding.velocity *= 0.7; - _handHolding.velocity += ( vectorToOtherHand + vectorToMyHand ) * _handHolding.force * deltaTime; - _handHolding.position += _handHolding.velocity; - - _bone[ AVATAR_BONE_RIGHT_HAND ].position = _handHolding.position; - } + if ( atLeastOneAvatarIsGrasping ) { + if ( _nearOtherAvatar ) { + + glm::vec3 vectorToOtherHand = _otherAvatar.handPosition - _handHolding.position; + glm::vec3 vectorToMyHand = _bone[ AVATAR_BONE_RIGHT_HAND ].position - _handHolding.position; + + _handHolding.velocity *= 0.7; + _handHolding.velocity += ( vectorToOtherHand + vectorToMyHand ) * _handHolding.force * deltaTime; + _handHolding.position += _handHolding.velocity; + + _bone[ AVATAR_BONE_RIGHT_HAND ].position = _handHolding.position; } } else { diff --git a/voxel-server/src/VoxelAgentData.cpp b/voxel-server/src/VoxelAgentData.cpp index 4476cff056..805b6363d7 100644 --- a/voxel-server/src/VoxelAgentData.cpp +++ b/voxel-server/src/VoxelAgentData.cpp @@ -19,7 +19,7 @@ VoxelAgentData::~VoxelAgentData() { } VoxelAgentData::VoxelAgentData(const VoxelAgentData &otherAgentData) { - memcpy(&_bodyPosition, &otherAgentData._bodyPosition, sizeof(_bodyPosition)); + memcpy(&_Position, &otherAgentData._Position, sizeof(_Position)); rootMarkerNode = new MarkerNode(); } diff --git a/voxel-server/src/main.cpp b/voxel-server/src/main.cpp index 91fa2fd596..1d2b961d93 100644 --- a/voxel-server/src/main.cpp +++ b/voxel-server/src/main.cpp @@ -199,7 +199,7 @@ void *distributeVoxelsToListeners(void *args) { stopOctal = randomTree.loadBitstreamBuffer(voxelPacketEnd, randomTree.rootNode, agentData->rootMarkerNode, - agentData->getBodyPosition(), + agentData->getPosition(), treeRoot, viewFrustum, ::viewFrustumCulling,