From 22f7cbc00d920562a42729bcdf07c472163c8064 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Fri, 30 Jan 2015 11:42:50 -0800 Subject: [PATCH] Minimal temporary setup for avatars in GVR --- gvr-interface/src/RenderingClient.cpp | 19 +++++++++++++++++++ gvr-interface/src/RenderingClient.h | 9 +++++++++ 2 files changed, 28 insertions(+) diff --git a/gvr-interface/src/RenderingClient.cpp b/gvr-interface/src/RenderingClient.cpp index 01f65f4121..0b4ce4cb94 100644 --- a/gvr-interface/src/RenderingClient.cpp +++ b/gvr-interface/src/RenderingClient.cpp @@ -47,6 +47,25 @@ RenderingClient::RenderingClient(QObject *parent, const QString& launchURLString connect(audioThread, &QThread::started, audioClient.data(), &AudioClient::start); audioThread->start(); + + + connect(&_avatarTimer, &QTimer::timeout, this, &RenderingClient::sendAvatarPacket); + _avatarTimer.setInterval(16); // 60 FPS + _avatarTimer.start(); + _fakeAvatar.setDisplayName("GearVR"); + _fakeAvatar.setFaceModelURL(QUrl(DEFAULT_HEAD_MODEL_URL)); + _fakeAvatar.setSkeletonModelURL(QUrl(DEFAULT_BODY_MODEL_URL)); + _fakeAvatar.toByteArray(); // Creates HeadData +} + +void RenderingClient::sendAvatarPacket() { + _fakeAvatar.setPosition(_position); + _fakeAvatar.setHeadOrientation(_orientation); + + QByteArray packet = byteArrayWithPopulatedHeader(PacketTypeAvatarData); + packet.append(_fakeAvatar.toByteArray()); + DependencyManager::get()->broadcastToNodes(packet, NodeSet() << NodeType::AvatarMixer); + _fakeAvatar.sendIdentityPacket(); } RenderingClient::~RenderingClient() { diff --git a/gvr-interface/src/RenderingClient.h b/gvr-interface/src/RenderingClient.h index 7c17e3ecf6..870bde748f 100644 --- a/gvr-interface/src/RenderingClient.h +++ b/gvr-interface/src/RenderingClient.h @@ -16,6 +16,10 @@ #include #include +#include + +#include + #include "Client.h" class RenderingClient : public Client { @@ -35,6 +39,8 @@ private slots: void goToLocation(const glm::vec3& newPosition, bool hasOrientationChange, const glm::quat& newOrientation, bool shouldFaceLocation); + void sendAvatarPacket(); + private: virtual void processVerifiedPacket(const HifiSockAddr& senderSockAddr, const QByteArray& incomingPacket); @@ -42,6 +48,9 @@ private: glm::vec3 _position; glm::quat _orientation; + + QTimer _avatarTimer; + AvatarData _fakeAvatar; }; #endif // hifi_RenderingClient_h