Merge pull request #2083 from ZappoMan/hideavatar

add support for hiding local rendering of avatar
This commit is contained in:
Philip Rosedale 2014-02-24 19:52:27 -08:00
commit c783036fcc
3 changed files with 37 additions and 0 deletions

View file

@ -0,0 +1,27 @@
//
// hideAvatarExample.js
// hifi
//
// Created by Brad Hefta-Gaub on 1/28/14.
// Copyright (c) 2014 HighFidelity, Inc. All rights reserved.
//
// This is an example script that demonstrates how to enable or disable local rendering of your own avatar
//
//
function keyReleaseEvent(event) {
if (event.text == "F2") {
MyAvatar.shouldRenderLocally = !MyAvatar.shouldRenderLocally;
}
}
// Map keyPress and mouse move events to our callbacks
Controller.keyReleaseEvent.connect(keyReleaseEvent);
function scriptEnding() {
// re-enabled the standard behavior
MyAvatar.shouldRenderLocally = true;
}
Script.scriptEnding.connect(scriptEnding);

View file

@ -60,6 +60,7 @@ MyAvatar::MyAvatar() :
_moveTarget(0,0,0),
_moveTargetStepCounter(0),
_lookAtTargetAvatar(),
_shouldRender(true),
_billboardValid(false)
{
for (int i = 0; i < MAX_DRIVE_KEYS; i++) {
@ -469,6 +470,10 @@ void MyAvatar::renderDebugBodyPoints() {
}
void MyAvatar::render(bool forceRenderHead) {
// don't render if we've been asked to disable local rendering
if (!_shouldRender) {
return; // exit early
}
// render body
if (Menu::getInstance()->isOptionChecked(MenuOption::RenderSkeletonCollisionProxies)) {

View file

@ -26,6 +26,7 @@ enum AvatarHandState
class MyAvatar : public Avatar {
Q_OBJECT
Q_PROPERTY(bool shouldRenderLocally READ getShouldRenderLocally WRITE setShouldRenderLocally)
public:
MyAvatar();
@ -50,6 +51,8 @@ public:
void setGravity(glm::vec3 gravity);
void setOrientation(const glm::quat& orientation);
void setMoveTarget(const glm::vec3 moveTarget);
void setShouldRenderLocally(bool shouldRender) { _shouldRender = shouldRender; }
// getters
float getSpeed() const { return _speed; }
@ -63,6 +66,7 @@ public:
Transmitter& getTransmitter() { return _transmitter; }
glm::vec3 getGravity() const { return _gravity; }
glm::vec3 getUprightHeadPosition() const;
bool getShouldRenderLocally() const { return _shouldRender; }
// get/set avatar data
void saveData(QSettings* settings);
@ -116,6 +120,7 @@ private:
glm::vec3 _moveTarget;
int _moveTargetStepCounter;
QWeakPointer<AvatarData> _lookAtTargetAvatar;
bool _shouldRender;
Transmitter _transmitter; // Gets UDP data from transmitter app used to animate the avatar
glm::vec3 _transmitterPickStart;