From fbdcd57529c5442bcc22b10b034ad8f848521522 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 26 Apr 2013 11:21:34 -0700 Subject: [PATCH] correct yaw sent to audio-mixer in Audio --- interface/src/Audio.cpp | 2 +- interface/src/Avatar.cpp | 5 ++++- interface/src/Avatar.h | 9 ++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index f4fc3c35f1..cecfc9456a 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -160,7 +160,7 @@ int audioCallback (const void *inputBuffer, *(currentPacketPtr++) = 255; // memcpy the corrected render yaw - float correctedYaw = fmodf(data->linkedAvatar->getRenderYaw(), 360); + float correctedYaw = fmodf(data->linkedAvatar->getAbsoluteHeadYaw(), 360); if (correctedYaw > 180) { correctedYaw -= 360; diff --git a/interface/src/Avatar.cpp b/interface/src/Avatar.cpp index d5f778c70c..afe9632b45 100644 --- a/interface/src/Avatar.cpp +++ b/interface/src/Avatar.cpp @@ -275,13 +275,16 @@ void Avatar::UpdateGyros(float frametime, SerialInterface * serialInterface, glm addLean(-measured_lateral_accel * frametime * HEAD_LEAN_SCALE, -measured_fwd_accel*frametime * HEAD_LEAN_SCALE); } +float Avatar::getAbsoluteHeadYaw() { + return _bodyYaw + _headYaw; +} + void Avatar::addLean(float x, float z) { // Add Body lean as impulse _head.leanSideways += x; _head.leanForward += z; } - void Avatar::setLeanForward(float dist){ _head.leanForward = dist; } diff --git a/interface/src/Avatar.h b/interface/src/Avatar.h index f568f80313..b931574ee8 100644 --- a/interface/src/Avatar.h +++ b/interface/src/Avatar.h @@ -167,18 +167,21 @@ public: void reset(); void UpdateGyros(float frametime, SerialInterface * serialInterface, glm::vec3 * gravity); + void setNoise (float mag) { _head.noise = mag; } void setScale(float s) {_head.scale = s; }; void setRenderYaw(float y) {_renderYaw = y;} void setRenderPitch(float p) {_renderPitch = p;} float getRenderYaw() {return _renderYaw;} float getRenderPitch() {return _renderPitch;} - void setLeanForward(float dist); - void setLeanSideways(float dist); - void addLean(float x, float z); float getLastMeasuredHeadYaw() const {return _head.yawRate;} float getBodyYaw() {return _bodyYaw;}; void addBodyYaw(float y) {_bodyYaw += y;}; + + float getAbsoluteHeadYaw(); + void setLeanForward(float dist); + void setLeanSideways(float dist); + void addLean(float x, float z); const glm::vec3& getHeadLookatDirection() const { return _orientation.getFront(); }; const glm::vec3& getHeadLookatDirectionUp() const { return _orientation.getUp(); };