From ffbc70814a37b116d76bb8d7e6a4251a731d2eb6 Mon Sep 17 00:00:00 2001 From: Jeffrey Ventrella Date: Mon, 20 May 2013 11:41:21 -0700 Subject: [PATCH] preparing to add transmitted lookat position data --- interface/src/Avatar.cpp | 9 ++++++--- libraries/avatars/src/AvatarData.cpp | 8 ++++++++ libraries/avatars/src/AvatarData.h | 7 +++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/interface/src/Avatar.cpp b/interface/src/Avatar.cpp index 1eb252dcb5..6b34f50e67 100644 --- a/interface/src/Avatar.cpp +++ b/interface/src/Avatar.cpp @@ -396,14 +396,17 @@ void Avatar::simulate(float deltaTime) { _head.setBodyYaw(_bodyYaw); - //the following is still being prototyped (making the eyes look at a specific location), it should be finished by 5/20/13 if (_interactingOther) { _head.setLooking(true); - _head.setLookatPosition(_interactingOther->getSpringyHeadPosition()); + + if (_isMine) { + setLookatPosition(_interactingOther->getSpringyHeadPosition()); + } } else { _head.setLooking(false); } - + + _head.setLookatPosition(_lookatPosition); _head.setAudioLoudness(_audioLoudness); _head.setSkinColor(glm::vec3(skinColor[0], skinColor[1], skinColor[2])); _head.simulate(deltaTime, _isMine); diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 2e11e8aa84..85b3fde0e6 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -63,6 +63,10 @@ int AvatarData::getBroadcastData(unsigned char* destinationBuffer) { // Hand Position memcpy(destinationBuffer, &_handPosition, sizeof(float) * 3); destinationBuffer += sizeof(float) * 3; + + // Lookat Position + memcpy(destinationBuffer, &_lookatPosition, sizeof(float) * 3); + destinationBuffer += sizeof(float) * 3; // Hand State (0 = not grabbing, 1 = grabbing) memcpy(destinationBuffer, &_handState, sizeof(char)); @@ -146,6 +150,10 @@ int AvatarData::parseData(unsigned char* sourceBuffer, int numBytes) { memcpy(&_handPosition, sourceBuffer, sizeof(float) * 3); sourceBuffer += sizeof(float) * 3; + // Lookat Position + memcpy(&_lookatPosition, sourceBuffer, sizeof(float) * 3); + sourceBuffer += sizeof(float) * 3; + // Hand State memcpy(&_handState, sourceBuffer, sizeof(char)); sourceBuffer += sizeof(char); diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index f37c4f3396..fdb3c89251 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -30,6 +30,7 @@ class AvatarData : public AgentData { public: AvatarData() : _handPosition(0,0,0), + _lookatPosition(0,0,0), _bodyYaw(-90.0), _bodyPitch(0.0), _bodyRoll(0.0), @@ -53,9 +54,10 @@ public: _wantColor(true) { }; const glm::vec3& getPosition() const { return _position; } - void setPosition(const glm::vec3 position) { _position = position; } - void setHandPosition(const glm::vec3 handPosition) { _handPosition = handPosition; } + void setPosition (const glm::vec3 position ) { _position = position; } + void setHandPosition (const glm::vec3 handPosition ) { _handPosition = handPosition; } + void setLookatPosition(const glm::vec3 lookatPosition) { _lookatPosition = lookatPosition; } int getBroadcastData(unsigned char* destinationBuffer); int parseData(unsigned char* sourceBuffer, int numBytes); @@ -138,6 +140,7 @@ protected: glm::vec3 _position; glm::vec3 _handPosition; + glm::vec3 _lookatPosition; // Body rotation float _bodyYaw;