From ddde0228ba3b1fd6b8a3006101594ff6ead9e2a8 Mon Sep 17 00:00:00 2001 From: Clement Date: Mon, 23 Apr 2018 16:10:44 -0700 Subject: [PATCH] Fix AC not sending Avatar Mixer a frustum --- assignment-client/src/Agent.cpp | 15 +++++++++++++++ assignment-client/src/Agent.h | 1 + interface/src/Application.cpp | 4 ++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp index 1df901dd98..26bfb586a6 100644 --- a/assignment-client/src/Agent.cpp +++ b/assignment-client/src/Agent.cpp @@ -594,9 +594,24 @@ void Agent::sendAvatarIdentityPacket() { auto scriptedAvatar = DependencyManager::get(); scriptedAvatar->markIdentityDataChanged(); scriptedAvatar->sendIdentityPacket(); + sendAvatarViewFrustum(); } } +void Agent::sendAvatarViewFrustum() { + auto scriptedAvatar = DependencyManager::get(); + ViewFrustum view; + view.setPosition(scriptedAvatar->getWorldPosition()); + view.setOrientation(scriptedAvatar->getHeadOrientation()); + auto viewFrustumByteArray = view.toByteArray(); + + auto avatarPacket = NLPacket::create(PacketType::ViewFrustum, viewFrustumByteArray.size()); + avatarPacket->write(viewFrustumByteArray); + + DependencyManager::get()->broadcastToNodes(std::move(avatarPacket), + { NodeType::AvatarMixer }); +} + void Agent::processAgentAvatar() { if (!_scriptEngine->isFinished() && _isAvatar) { auto scriptedAvatar = DependencyManager::get(); diff --git a/assignment-client/src/Agent.h b/assignment-client/src/Agent.h index 1229f06276..e4ce0f95eb 100644 --- a/assignment-client/src/Agent.h +++ b/assignment-client/src/Agent.h @@ -97,6 +97,7 @@ private: void setAvatarSound(SharedSoundPointer avatarSound) { _avatarSound = avatarSound; } void sendAvatarIdentityPacket(); + void sendAvatarViewFrustum(); QString _scriptContents; QTimer* _scriptRequestTimeout { nullptr }; diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 33c334b493..cdb535fad1 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -5806,8 +5806,8 @@ void Application::update(float deltaTime) { void Application::sendAvatarViewFrustum() { QByteArray viewFrustumByteArray = _viewFrustum.toByteArray(); - if (hasSecondaryViewFrustum()) { - viewFrustumByteArray += _viewFrustum.toByteArray(); + if (_hasSecondaryViewFrustum) { + viewFrustumByteArray += _secondaryViewFrustum.toByteArray(); } auto avatarPacket = NLPacket::create(PacketType::ViewFrustum, viewFrustumByteArray.size());