mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 23:16:20 +02:00
simplify avatar proximity check for 1p transition
This commit is contained in:
parent
ab1c00dac6
commit
66c7da6552
3 changed files with 7 additions and 8 deletions
|
@ -1096,10 +1096,9 @@ void Avatar::updateArmIKAndConstraints(float deltaTime) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// set elbow position
|
// set elbow position
|
||||||
glm::vec3 newElbowPosition = _joint[ AVATAR_JOINT_RIGHT_SHOULDER ].position;
|
glm::vec3 newElbowPosition = _joint[ AVATAR_JOINT_RIGHT_SHOULDER ].position + armVector * ONE_HALF;
|
||||||
newElbowPosition += armVector * ONE_HALF;
|
|
||||||
|
|
||||||
glm::vec3 perpendicular = glm::cross(_orientation.getFront(), armVector);
|
glm::vec3 perpendicular = glm::cross( _orientation.getRight(), armVector);
|
||||||
|
|
||||||
newElbowPosition += perpendicular * (1.0f - (_maxArmLength / distance)) * ONE_HALF;
|
newElbowPosition += perpendicular * (1.0f - (_maxArmLength / distance)) * ONE_HALF;
|
||||||
_joint[ AVATAR_JOINT_RIGHT_ELBOW ].position = newElbowPosition;
|
_joint[ AVATAR_JOINT_RIGHT_ELBOW ].position = newElbowPosition;
|
||||||
|
|
|
@ -54,8 +54,9 @@ void AvatarTouch::simulate (float deltaTime) {
|
||||||
facingEachOther = true;
|
facingEachOther = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((distanceBetweenBodies < _reachableRadius)
|
if (distanceBetweenBodies < _reachableRadius)
|
||||||
&& (facingEachOther)) {
|
//&& (facingEachOther))
|
||||||
|
{
|
||||||
_canReachToOtherAvatar = true;
|
_canReachToOtherAvatar = true;
|
||||||
|
|
||||||
_vectorBetweenHands = _yourHandPosition - _myHandPosition;
|
_vectorBetweenHands = _yourHandPosition - _myHandPosition;
|
||||||
|
|
|
@ -18,7 +18,6 @@ const float EYE_RIGHT_OFFSET = 0.27f;
|
||||||
const float EYE_UP_OFFSET = 0.36f;
|
const float EYE_UP_OFFSET = 0.36f;
|
||||||
const float EYE_FRONT_OFFSET = 0.8f;
|
const float EYE_FRONT_OFFSET = 0.8f;
|
||||||
const float EAR_RIGHT_OFFSET = 1.0;
|
const float EAR_RIGHT_OFFSET = 1.0;
|
||||||
//const float MOUTH_FRONT_OFFSET = 0.9f;
|
|
||||||
const float MOUTH_UP_OFFSET = -0.3f;
|
const float MOUTH_UP_OFFSET = -0.3f;
|
||||||
const float HEAD_MOTION_DECAY = 0.1;
|
const float HEAD_MOTION_DECAY = 0.1;
|
||||||
const float MINIMUM_EYE_ROTATION_DOT = 0.5f; // based on a dot product: 1.0 is straight ahead, 0.0 is 90 degrees off
|
const float MINIMUM_EYE_ROTATION_DOT = 0.5f; // based on a dot product: 1.0 is straight ahead, 0.0 is 90 degrees off
|
||||||
|
@ -281,7 +280,7 @@ void Head::renderMohawk(bool lookingInMirror, glm::vec3 cameraPosition) {
|
||||||
glm::vec3 mid2 = _hairTuft[t].midPosition + midPerpendicular * _hairTuft[t].thickness * ONE_HALF * ONE_HALF;
|
glm::vec3 mid2 = _hairTuft[t].midPosition + midPerpendicular * _hairTuft[t].thickness * ONE_HALF * ONE_HALF;
|
||||||
|
|
||||||
glColor3f(_mohawkColors[t].x, _mohawkColors[t].y, _mohawkColors[t].z);
|
glColor3f(_mohawkColors[t].x, _mohawkColors[t].y, _mohawkColors[t].z);
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
glBegin(GL_TRIANGLES);
|
||||||
glVertex3f(base1.x, base1.y, base1.z );
|
glVertex3f(base1.x, base1.y, base1.z );
|
||||||
glVertex3f(base2.x, base2.y, base2.z );
|
glVertex3f(base2.x, base2.y, base2.z );
|
||||||
|
@ -354,7 +353,7 @@ void Head::renderMouth() {
|
||||||
glm::vec3 rightBottom = _mouthPosition + r * 0.4f - u * 1.0f + f * 0.7f;
|
glm::vec3 rightBottom = _mouthPosition + r * 0.4f - u * 1.0f + f * 0.7f;
|
||||||
|
|
||||||
// constrain all mouth vertices to a sphere slightly larger than the head...
|
// constrain all mouth vertices to a sphere slightly larger than the head...
|
||||||
float constrainedRadius = _scale + 0.001f;
|
float constrainedRadius = _scale + 0.002f;
|
||||||
middle = _position + glm::normalize(middle - _position) * constrainedRadius;
|
middle = _position + glm::normalize(middle - _position) * constrainedRadius;
|
||||||
leftCorner = _position + glm::normalize(leftCorner - _position) * constrainedRadius;
|
leftCorner = _position + glm::normalize(leftCorner - _position) * constrainedRadius;
|
||||||
rightCorner = _position + glm::normalize(rightCorner - _position) * constrainedRadius;
|
rightCorner = _position + glm::normalize(rightCorner - _position) * constrainedRadius;
|
||||||
|
|
Loading…
Reference in a new issue