mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 18:23:54 +02:00
Merge pull request #2083 from ZappoMan/hideavatar
add support for hiding local rendering of avatar
This commit is contained in:
commit
c783036fcc
3 changed files with 37 additions and 0 deletions
27
examples/hideAvatarExample.js
Normal file
27
examples/hideAvatarExample.js
Normal 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);
|
|
@ -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)) {
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue