From 89d6c7905bb443cb21cf922e961ef7760b2c5a85 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 16 Oct 2013 17:21:09 -0700 Subject: [PATCH] Decrease the distance between members, increase the influence of the circle, don't rotate members. --- interface/src/avatar/MyAvatar.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 1ce02ea4e2..55752339fa 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1127,8 +1127,8 @@ void MyAvatar::updateChatCircle(float deltaTime) { } // remove members whose accumulated circles are too far away to influence us - const float CIRCUMFERENCE_PER_MEMBER = 1.0f; - const float CIRCLE_INFLUENCE_SCALE = 1.1f; + const float CIRCUMFERENCE_PER_MEMBER = 0.5f; + const float CIRCLE_INFLUENCE_SCALE = 1.5f; for (int i = sortedAvatars.size() - 1; i >= 0; i--) { float radius = (CIRCUMFERENCE_PER_MEMBER * (i + 2)) / PI_TIMES_TWO; if (glm::distance(_position, sortedAvatars[i].accumulatedCenter) > radius * CIRCLE_INFLUENCE_SCALE) { @@ -1182,15 +1182,9 @@ void MyAvatar::updateChatCircle(float deltaTime) { float targetAngle = myAngle + (rightDistance - leftDistance) / 2.0f; glm::vec3 targetPosition = center + (front * sinf(targetAngle) + right * cosf(targetAngle)) * radius; - // face the center of the circle - glm::quat orientation = getOrientation(); - glm::quat targetOrientation = rotationBetween(orientation * IDENTITY_FRONT, center - targetPosition) * orientation; - targetOrientation = rotationBetween(targetOrientation * IDENTITY_UP, up) * targetOrientation; - - // approach the target position/orientation + // approach the target position const float APPROACH_RATE = 0.025f; _position = glm::mix(_position, targetPosition, APPROACH_RATE); - setOrientation(safeMix(orientation, targetOrientation, APPROACH_RATE)); } void MyAvatar::setGravity(glm::vec3 gravity) {