From 46e38aa0cb16f3e6f5ff976460c41ab7a85b4891 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 12 Apr 2013 14:45:37 -0700 Subject: [PATCH 1/4] remove a line to test git folder reference --- voxel-server/src/main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/voxel-server/src/main.cpp b/voxel-server/src/main.cpp index c3ab221b01..d012f23995 100644 --- a/voxel-server/src/main.cpp +++ b/voxel-server/src/main.cpp @@ -6,7 +6,6 @@ // Copyright (c) 2012 High Fidelity, Inc. All rights reserved. // - #include #include #include From c3b457febb533f55d9bbf1dbbd99b2fb079915f6 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 12 Apr 2013 14:51:12 -0700 Subject: [PATCH 2/4] moved MarkerNode from shared to voxel library --- libraries/{shared => voxels}/src/MarkerNode.cpp | 0 libraries/{shared => voxels}/src/MarkerNode.h | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename libraries/{shared => voxels}/src/MarkerNode.cpp (100%) rename libraries/{shared => voxels}/src/MarkerNode.h (100%) diff --git a/libraries/shared/src/MarkerNode.cpp b/libraries/voxels/src/MarkerNode.cpp similarity index 100% rename from libraries/shared/src/MarkerNode.cpp rename to libraries/voxels/src/MarkerNode.cpp diff --git a/libraries/shared/src/MarkerNode.h b/libraries/voxels/src/MarkerNode.h similarity index 100% rename from libraries/shared/src/MarkerNode.h rename to libraries/voxels/src/MarkerNode.h From 265fcc60954f2cea8a722610fdebb19677daff29 Mon Sep 17 00:00:00 2001 From: Jeffrey Ventrella Date: Fri, 12 Apr 2013 15:00:48 -0700 Subject: [PATCH 3/4] a few small fixes on the avatar springs --- interface/src/Camera.cpp | 11 +++++---- interface/src/Head.cpp | 50 +++++++++++++++++----------------------- interface/src/Head.h | 11 ++++----- interface/src/main.cpp | 13 +++++------ 4 files changed, 38 insertions(+), 47 deletions(-) diff --git a/interface/src/Camera.cpp b/interface/src/Camera.cpp index c71e02ebc0..5a6899467c 100755 --- a/interface/src/Camera.cpp +++ b/interface/src/Camera.cpp @@ -1,9 +1,9 @@ -//----------------------------------------------------------- +//--------------------------------------------------------------------- // -// Created by Jeffrey Ventrella and added as a utility -// class for High Fidelity Code base, April 2013 +// Created by Jeffrey Ventrella for High Fidelity. +// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. // -//----------------------------------------------------------- +//--------------------------------------------------------------------- #include "Camera.h" #include "Util.h" @@ -30,8 +30,9 @@ void Camera::update() { double radian = ( yaw / 180.0 ) * PIE; + //these need to be checked to make sure they correspond to the cordinate system. double x = distance * -sin( radian ); - double z = distance * cos( radian ); + double z = distance * cos( radian ); double y = up; position = targetPosition + glm::vec3( x, y, z ); diff --git a/interface/src/Head.cpp b/interface/src/Head.cpp index 2b457d8099..600dc3f0ca 100644 --- a/interface/src/Head.cpp +++ b/interface/src/Head.cpp @@ -378,18 +378,18 @@ void Head::simulate(float deltaTime) { avatar.thrust -= up * THRUST_MAG; } if (driveKeys[ROT_RIGHT]) { - avatar.yawDelta -= YAW_MAG * deltaTime; + bodyYawDelta -= YAW_MAG * deltaTime; } if (driveKeys[ROT_LEFT]) { - avatar.yawDelta += YAW_MAG * deltaTime; + bodyYawDelta += YAW_MAG * deltaTime; } - avatar.yaw += avatar.yawDelta * deltaTime; + bodyYaw += bodyYawDelta * deltaTime; - Yaw = avatar.yaw; + Yaw = bodyYaw; const float TEST_YAW_DECAY = 5.0; - avatar.yawDelta *= ( 1.0 - TEST_YAW_DECAY * deltaTime ); + bodyYawDelta *= ( 1.0 - TEST_YAW_DECAY * deltaTime ); avatar.velocity += glm::dvec3( avatar.thrust * deltaTime ); @@ -633,7 +633,7 @@ void Head::renderHead( int faceToFace, int isMine ) { //glRotatef(Yaw, 0, 1, 0); - glRotatef( avatar.yaw, 0, 1, 0); + glRotatef( bodyYaw, 0, 1, 0); //hand->render(1); @@ -789,11 +789,11 @@ void Head::initializeAvatar() { closestOtherAvatar = 0; - avatar.yaw = -90.0; - avatar.pitch = 0.0; - avatar.roll = 0.0; + bodyYaw = -90.0; + bodyPitch = 0.0; + bodyRoll = 0.0; - avatar.yawDelta = 0.0; + bodyYawDelta = 0.0; for (int b=0; b 0.0 ) { @@ -982,7 +979,7 @@ void Head::updateAvatarSprings( float deltaTime ) { } float Head::getBodyYaw() { - return avatar.yaw; + return bodyYaw; } glm::vec3 Head::getHeadLookatDirection() { @@ -1035,14 +1032,10 @@ glm::vec3 Head::getBodyPosition() { void Head::updateHandMovement() { glm::vec3 transformedHandMovement; - - transformedHandMovement.x = -glm::dot( movedHandOffset, avatar.orientation.getRight () ); - transformedHandMovement.y = -glm::dot( movedHandOffset, avatar.orientation.getUp () ); - transformedHandMovement.z = -glm::dot( movedHandOffset, avatar.orientation.getFront () ); - - - //transformedHandMovement = glm::vec3( 0.0f, 0.0f, 0.0f ); - + transformedHandMovement + = avatar.orientation.getRight() * -movedHandOffset.x + + avatar.orientation.getUp() * -movedHandOffset.y + + avatar.orientation.getFront() * -movedHandOffset.y * 0.4; //if holding hands, add a pull to the hand... if ( usingSprings ) { @@ -1056,7 +1049,6 @@ void Head::updateHandMovement() { } } - avatar.bone[ AVATAR_BONE_RIGHT_HAND ].position += transformedHandMovement; glm::vec3 armVector = avatar.bone[ AVATAR_BONE_RIGHT_HAND ].position; armVector -= avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].position; @@ -1068,14 +1060,14 @@ void Head::updateHandMovement() { //------------------------------------------------------------------------------- // if right hand is being dragged beyond maximum arm length... - //------------------------------------------------------------------------------- + //------------------------------------------------------------------------------- if ( distance > avatar.maxArmLength ) { //------------------------------------------------------------------------------- // reset right hand to be constrained to maximum arm length //------------------------------------------------------------------------------- avatar.bone[ AVATAR_BONE_RIGHT_HAND ].position = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].position; glm::vec3 armNormal = armVector / distance; - armVector = armNormal * (float)avatar.maxArmLength; + armVector = armNormal * avatar.maxArmLength; distance = avatar.maxArmLength; glm::vec3 constrainedPosition = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].position; constrainedPosition += armVector; @@ -1087,8 +1079,8 @@ void Head::updateHandMovement() { //----------------------------------------------------------------------------- glm::vec3 newElbowPosition = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].position; newElbowPosition += armVector * (float)ONE_HALF; - glm::vec3 perpendicular = glm::vec3( -armVector.y, armVector.x, armVector.z ); - newElbowPosition += perpendicular * (float)( ( 1.0 - ( avatar.maxArmLength / distance ) ) * ONE_HALF ); + glm::vec3 perpendicular = glm::cross( avatar.orientation.getFront(), armVector ); + newElbowPosition += perpendicular * ( 1.0 - ( avatar.maxArmLength / distance ) ) * ONE_HALF; avatar.bone[ AVATAR_BONE_RIGHT_UPPER_ARM ].position = newElbowPosition; //----------------------------------------------------------------------------- diff --git a/interface/src/Head.h b/interface/src/Head.h index 7c9f4b91aa..2cda9a1af6 100644 --- a/interface/src/Head.h +++ b/interface/src/Head.h @@ -120,10 +120,6 @@ struct Avatar { glm::dvec3 velocity; glm::vec3 thrust; - float yaw; - float pitch; - float roll; - float yawDelta; float maxArmLength; Orientation orientation; AvatarBone bone[ NUM_AVATAR_BONES ]; @@ -236,8 +232,11 @@ class Head : public AgentData { float browAudioLift; glm::vec3 position; - //glm::vec3 velocity; - //glm::vec3 thrust; + + float bodyYaw; + float bodyPitch; + float bodyRoll; + float bodyYawDelta; float closeEnoughToInteract; int closestOtherAvatar; diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 5b11d9e34e..96a2bdcfed 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -1234,14 +1234,13 @@ void idle(void) // Only run simulation code if more than IDLE_SIMULATE_MSECS have passed since last time - if (diffclock(&lastTimeIdle, &check) > IDLE_SIMULATE_MSECS) - { + if (diffclock(&lastTimeIdle, &check) > IDLE_SIMULATE_MSECS) { // If mouse is being dragged, update hand movement in the avatar - if ( mousePressed == 1 ) - { - float xOffset = ( mouseX - mouseStartX ) / (double)WIDTH; - float yOffset = ( mouseY - mouseStartY ) / (double)HEIGHT; - + if ( mousePressed == 1 ) { + + float xOffset = ( mouseX - mouseStartX ) / ( WIDTH * ONE_HALF ); + float yOffset = ( mouseY - mouseStartY ) / ( HEIGHT * ONE_HALF ); + float leftRight = xOffset; float downUp = yOffset; float backFront = 0.0; From 13cde69da2dfebc3eff1b5d04691d432453f3d5c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 12 Apr 2013 15:03:02 -0700 Subject: [PATCH 4/4] include the shared headers to the voxel library --- libraries/voxels/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/voxels/CMakeLists.txt b/libraries/voxels/CMakeLists.txt index a1fe6b5922..376d652d00 100644 --- a/libraries/voxels/CMakeLists.txt +++ b/libraries/voxels/CMakeLists.txt @@ -18,4 +18,5 @@ file(GLOB HIFI_VOXELS_SRCS src/*.h src/*.cpp) # create a library and set the property so it can be referenced later add_library(${TARGET_NAME} ${HIFI_VOXELS_SRCS}) +include_directories(${TARGET_NAME} ../shared/src) set(HIFI_VOXELS_LIBRARY ${TARGET_NAME}) \ No newline at end of file