From 3f957bbf5d8a0e9c0d2633ee4b11ae259d741a7d Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Thu, 5 Dec 2013 16:46:11 -0800 Subject: [PATCH] Rave out! --- interface/src/Application.cpp | 11 - interface/src/Menu.cpp | 4 +- interface/src/Menu.h | 1 - interface/src/avatar/Avatar.cpp | 4 - interface/src/avatar/Hand.cpp | 549 ------------------------- interface/src/avatar/Hand.h | 21 +- interface/src/avatar/MyAvatar.cpp | 19 - interface/src/avatar/MyAvatar.h | 1 - libraries/avatars/src/HandData.cpp | 28 +- libraries/avatars/src/HandData.h | 24 -- libraries/shared/src/PacketHeaders.cpp | 2 +- 11 files changed, 5 insertions(+), 659 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index b48a622772..9718e21e1c 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -609,12 +609,6 @@ void Application::keyPressEvent(QKeyEvent* event) { return; } - //this is for switching between modes for the leap rave glove test - if (Menu::getInstance()->isOptionChecked(MenuOption::SimulateLeapHand) - || Menu::getInstance()->isOptionChecked(MenuOption::TestRaveGlove)) { - _myAvatar.getHand().setRaveGloveEffectsMode((QKeyEvent*)event); - } - bool isShifted = event->modifiers().testFlag(Qt::ShiftModifier); bool isMeta = event->modifiers().testFlag(Qt::ControlModifier); switch (event->key()) { @@ -2252,7 +2246,6 @@ void Application::updateLeap(float deltaTime) { PerformanceWarning warn(showWarnings, "Application::updateLeap()"); LeapManager::enableFakeFingers(Menu::getInstance()->isOptionChecked(MenuOption::SimulateLeapHand)); - _myAvatar.getHand().setRaveGloveActive(Menu::getInstance()->isOptionChecked(MenuOption::TestRaveGlove)); LeapManager::nextFrame(); } @@ -3086,12 +3079,8 @@ void Application::displaySide(Camera& whichCamera, bool selfAvatarOnly) { } } - _myAvatar.renderScreenTint(SCREEN_TINT_BEFORE_AVATARS); - renderAvatars(whichCamera.getMode() == CAMERA_MODE_MIRROR, selfAvatarOnly); - _myAvatar.renderScreenTint(SCREEN_TINT_AFTER_AVATARS); - if (!selfAvatarOnly) { // Render the world box if (whichCamera.getMode() != CAMERA_MODE_MIRROR && Menu::getInstance()->isOptionChecked(MenuOption::Stats)) { diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 8a3debfa5f..a32159d186 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -363,12 +363,12 @@ Menu::Menu() : appInstance->getWebcam()->getGrabber(), SLOT(setDepthOnly(bool))); - QMenu* raveGloveOptionsMenu = developerMenu->addMenu("Rave Glove Options"); + QMenu* raveGloveOptionsMenu = developerMenu->addMenu("Hand Options"); addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::SimulateLeapHand); addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::DisplayLeapHands, 0, true); addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::LeapDrive, 0, false); - addCheckableActionToQMenuAndActionHash(raveGloveOptionsMenu, MenuOption::TestRaveGlove); + QMenu* trackingOptionsMenu = developerMenu->addMenu("Tracking Options"); addCheckableActionToQMenuAndActionHash(trackingOptionsMenu, diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 65bcdc11f5..c4238eea4f 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -239,7 +239,6 @@ namespace MenuOption { const QString Stars = "Stars"; const QString Stats = "Stats"; const QString TestPing = "Test Ping"; - const QString TestRaveGlove = "Test Rave Glove"; const QString TreeStats = "Calculate Tree Stats"; const QString TransmitterDrive = "Transmitter Drive"; const QString Quit = "Quit"; diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 85fed15911..7a80bb51c9 100755 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -442,10 +442,6 @@ static TextRenderer* textRenderer() { void Avatar::render(bool forceRenderHead) { - if (Application::getInstance()->getAvatar()->getHand().isRaveGloveActive()) { - _hand.setRaveLights(RAVE_LIGHTS_AVATAR); - } - // render a simple round on the ground projected down from the avatar's position renderDiskShadow(_position, glm::vec3(0.0f, 1.0f, 0.0f), _scale * 0.1f, 0.2f); diff --git a/interface/src/avatar/Hand.cpp b/interface/src/avatar/Hand.cpp index 35b8f167cc..be9455b93d 100755 --- a/interface/src/avatar/Hand.cpp +++ b/interface/src/avatar/Hand.cpp @@ -21,8 +21,6 @@ using namespace std; Hand::Hand(Avatar* owningAvatar) : HandData((AvatarData*)owningAvatar), - _raveGloveClock(0.0f), - _raveGloveInitialized(false), _owningAvatar(owningAvatar), _renderAlpha(1.0), _ballColor(0.0, 0.0, 0.4), @@ -30,10 +28,6 @@ Hand::Hand(Avatar* owningAvatar) : _collisionAge(0), _collisionDuration(0) { - // initialize all finger particle emitters with an invalid id as default - for (int f = 0; f< NUM_FINGERS; f ++ ) { - _raveGloveEmitter[f] = NULL_EMITTER; - } } void Hand::init() { @@ -44,9 +38,6 @@ void Hand::init() { else { _ballColor = glm::vec3(0.0, 0.0, 0.4); } - - _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_FIRE; - _raveGloveEffectsModeChanged = false; } void Hand::reset() { @@ -60,15 +51,6 @@ void Hand::simulate(float deltaTime, bool isMine) { } calculateGeometry(); - - if (_isRaveGloveActive) { - if (_raveGloveEffectsModeChanged && _raveGloveInitialized) { - activateNewRaveGloveMode(); - _raveGloveEffectsModeChanged = false; - } - - updateRaveGloveParticles(deltaTime); - } if (isMine) { // Create a voxel at fingertip if controller button is pressed @@ -200,50 +182,14 @@ void Hand::calculateGeometry() { } } -void Hand::setRaveGloveEffectsMode(QKeyEvent* event) { - - _raveGloveEffectsModeChanged = true; - - switch (event->key()) { - - case Qt::Key_0: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_THROBBING_COLOR; break; - case Qt::Key_1: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_TRAILS; break; - case Qt::Key_2: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_FIRE; break; - case Qt::Key_3: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_WATER; break; - case Qt::Key_4: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_FLASHY; break; - case Qt::Key_5: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_BOZO_SPARKLER; break; - case Qt::Key_6: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_LONG_SPARKLER; break; - case Qt::Key_7: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_SNAKE; break; - case Qt::Key_8: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_PULSE; break; - case Qt::Key_9: _raveGloveEffectsMode = RAVE_GLOVE_EFFECTS_MODE_THROB; break; - }; -} - void Hand::render( bool isMine) { _renderAlpha = 1.0; if (Menu::getInstance()->isOptionChecked(MenuOption::DisplayLeapHands)) { - if (!isRaveGloveActive()) { - renderLeapFingerTrails(); - } - if (isRaveGloveActive()) { - // Use mood lighting for the hand itself - setRaveLights(RAVE_LIGHTS_AVATAR); - } - renderLeapFingerTrails(); renderLeapHands(); } - if (_isRaveGloveActive) { - if (_raveGloveInitialized) { - updateRaveGloveEmitters(); // do this after calculateGeometry - - // Use normal lighting for the particles - setRaveLights(RAVE_LIGHTS_PARTICLES); - _raveGloveParticleSystem.render(); - } - } if (isMine) { // If hand/voxel collision has happened, render a little expanding sphere @@ -304,65 +250,6 @@ void Hand::render( bool isMine) { } -void Hand::setRaveLights(RaveLightsSetting setting) { - if (setting == RAVE_LIGHTS_AVATAR) { - // Set some mood lighting - GLfloat ambient_color[] = { 0.0, 0.0, 0.0 }; - glLightfv(GL_LIGHT0, GL_AMBIENT, ambient_color); - GLfloat diffuse_color[] = { 0.4, 0.0, 0.0 }; - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse_color); - GLfloat specular_color[] = { 0.0, 0.0, 0.0, 0.0}; - glLightfv(GL_LIGHT0, GL_SPECULAR, specular_color); - glMaterialfv(GL_FRONT, GL_SPECULAR, specular_color); - glMateriali(GL_FRONT, GL_SHININESS, 0); - } - else if (setting == RAVE_LIGHTS_PARTICLES) { - // particles use a brighter light setting - GLfloat ambient_color[] = { 0.7, 0.7, 0.8 }; - glLightfv(GL_LIGHT0, GL_AMBIENT, ambient_color); - GLfloat diffuse_color[] = { 0.8, 0.7, 0.7 }; - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse_color); - GLfloat specular_color[] = { 1.0, 1.0, 1.0, 1.0}; - glLightfv(GL_LIGHT0, GL_SPECULAR, specular_color); - glMaterialfv(GL_FRONT, GL_SPECULAR, specular_color); - glMateriali(GL_FRONT, GL_SHININESS, 96); - } -} - -void Hand::renderRaveGloveStage() { - - // Draw a simple fullscreen triangle fan, darkest in the center. - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadIdentity(); - - glDisable(GL_DEPTH_TEST); - glDepthMask(GL_FALSE); - glEnable(GL_BLEND); - glBegin(GL_TRIANGLE_FAN); - // Dark center vertex - glColor4f(0.0f, 0.0f, 0.0f, 1.0f); - glVertex3f(0.0f, 0.0f, 0.0f); - // Lighter outer vertices - glColor4f(0.0f, 0.0f, 0.0f, 0.5f); - glVertex3f(-1.0f,-1.0f, 0.0f); - glVertex3f( 1.0f,-1.0f, 0.0f); - glVertex3f( 1.0f, 1.0f, 0.0f); - glVertex3f(-1.0f, 1.0f, 0.0f); - glVertex3f(-1.0f,-1.0f, 0.0f); - glEnd(); - glDepthMask(GL_TRUE); - glEnable(GL_DEPTH_TEST); - - glMatrixMode(GL_PROJECTION); - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); -} - void Hand::renderLeapHands() { const float alpha = 1.0f; @@ -420,38 +307,6 @@ void Hand::renderLeapHands() { glPopMatrix(); } -void Hand::renderLeapFingerTrails() { - // Draw the finger root cones - glDisable(GL_LIGHTING); - for (size_t i = 0; i < getNumPalms(); ++i) { - PalmData& palm = getPalms()[i]; - if (palm.isActive()) { - for (size_t f = 0; f < palm.getNumFingers(); ++f) { - FingerData& finger = palm.getFingers()[f]; - int numPositions = finger.getTrailNumPositions() - 1; - if (numPositions > 0) { - glBegin(GL_TRIANGLE_STRIP); - for (int t = 0; t < numPositions; ++t) - { - const glm::vec3& center = finger.getTrailPosition(t); - const float halfWidth = 0.004f; - const glm::vec3 edgeDirection(1.0f, 0.0f, 0.0f); - glm::vec3 edge0 = center + edgeDirection * halfWidth; - glm::vec3 edge1 = center - edgeDirection * halfWidth; - float alpha = 1.0f - ((float)t / (float)(numPositions - 1)); - alpha *= 0.25f; - glColor4f(1.0f, 1.0f, 1.0f, alpha); - glVertex3fv((float*)&edge0); - glVertex3fv((float*)&edge1); - } - glEnd(); - } - } - } - } - glEnable(GL_LIGHTING); -} - void Hand::setLeapHands(const std::vector& handPositions, const std::vector& handNormals) { @@ -469,410 +324,6 @@ void Hand::setLeapHands(const std::vector& handPositions, } -// call this soon after the geometry of the leap hands are set -void Hand::updateRaveGloveEmitters() { - int emitterIndex = 0; - - for (size_t i = 0; i < NUM_FINGERS; i++) { - _raveGloveParticleSystem.setEmitterActive(_raveGloveEmitter[i], false); - } - - for (size_t palmIndex = 0; palmIndex < getNumPalms(); ++palmIndex) { - PalmData& palm = getPalms()[palmIndex]; - if (palm.isActive()) { - for (size_t f = 0; f < palm.getNumFingers(); ++f) { - FingerData& finger = palm.getFingers()[f]; - if (finger.isActive()) { - if (emitterIndex < NUM_FINGERS) { // safety, stop at the array size - glm::vec3 fingerDirection = finger.getTipPosition() - finger.getRootPosition(); - float fingerLength = glm::length(fingerDirection); - - if (fingerLength > 0.0f) { - fingerDirection /= fingerLength; - } else { - fingerDirection = IDENTITY_UP; - } - - _raveGloveParticleSystem.setEmitterActive (_raveGloveEmitter[emitterIndex], true); - _raveGloveParticleSystem.setEmitterPosition (_raveGloveEmitter[emitterIndex], finger.getTipPosition()); - _raveGloveParticleSystem.setEmitterDirection(_raveGloveEmitter[emitterIndex], fingerDirection); - } - } - emitterIndex++; - } - } - } -} - - -// call this from within the simulate method -void Hand::updateRaveGloveParticles(float deltaTime) { - - if (!_raveGloveInitialized) { - - // start up the rave glove finger particles... - for ( int f = 0; f< NUM_FINGERS; f ++ ) { - _raveGloveEmitter[f] = _raveGloveParticleSystem.addEmitter(); - assert( _raveGloveEmitter[f] >= 0 ); - assert( _raveGloveEmitter[f] != NULL_EMITTER ); - } - - setRaveGloveMode(RAVE_GLOVE_EFFECTS_MODE_FIRE); - activateNewRaveGloveMode(); - _raveGloveParticleSystem.setUpDirection(glm::vec3(0.0f, 1.0f, 0.0f)); - _raveGloveInitialized = true; - } else { - _raveGloveParticleSystem.simulate(deltaTime); - } -} - -// The rave glove mode has changed, so activate the effects. -void Hand::activateNewRaveGloveMode() { - - if (!_raveGloveInitialized) { - return; - } - - int mode = _raveGloveEffectsMode; - _raveGloveParticleSystem.killAllParticles(); - - for ( int f = 0; f< NUM_FINGERS; f ++ ) { - - ParticleSystem::ParticleAttributes attributes; - - //----------------------------------------- - // throbbing color cycle - //----------------------------------------- - if (mode == RAVE_GLOVE_EFFECTS_MODE_THROBBING_COLOR) { - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_SPHERE ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], true ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 0.03f ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.0f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 30.0f ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 20 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.modulationAmplitude = 1.0; - attributes.modulationRate = 0.33; - attributes.modulationStyle = COLOR_MODULATION_STYLE_RAINBOW_CYCLE; - attributes.color = glm::vec4( 0.5f, 0.5f, 0.5f, 1.0f); - attributes.radius = 0.02f; - attributes.gravity = 0.0f; - attributes.airFriction = 0.0f; - attributes.jitter = 0.0f; - attributes.bounce = 0.0f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - - //----------------------------------------- - // trails - //----------------------------------------- - } else if (mode == RAVE_GLOVE_EFFECTS_MODE_TRAILS) { - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_RIBBON ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], false ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 1.0f ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.0f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 50.0f ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 5 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.radius = 0.001f; - attributes.color = glm::vec4( 1.0f, 0.5f, 0.2f, 1.0f); - attributes.gravity = 0.005f; - attributes.airFriction = 0.0f; - attributes.jitter = 0.0f; - attributes.bounce = 0.0f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - - attributes.radius = 0.002f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - - attributes.color = glm::vec4( 1.0f, 0.2f, 0.2f, 0.5f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - - attributes.color = glm::vec4( 1.0f, 0.2f, 0.2f, 0.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - } - - //----------------------------------------- - // Fire! - //----------------------------------------- - if (mode == RAVE_GLOVE_EFFECTS_MODE_FIRE) { - - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_SPHERE ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], false ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 1.0f ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.002f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 120.0 ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 6 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.radius = 0.005f; - attributes.color = glm::vec4( 1.0f, 1.0f, 0.5f, 0.5f); - attributes.airFriction = 0.0f; - attributes.jitter = 0.003f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - - attributes.radius = 0.01f; - attributes.jitter = 0.0f; - attributes.gravity = -0.005f; - attributes.color = glm::vec4( 1.0f, 0.2f, 0.0f, 0.4f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - - attributes.radius = 0.01f; - attributes.gravity = 0.0f; - attributes.color = glm::vec4( 0.4f, 0.4f, 0.4f, 0.2f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - - attributes.radius = 0.02f; - attributes.color = glm::vec4( 0.4f, 0.6f, 0.9f, 0.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - - //----------------------------------------- - // water - //----------------------------------------- - } else if (mode == RAVE_GLOVE_EFFECTS_MODE_WATER) { - - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_SPHERE ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], true ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 0.6f ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.001f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 100.0 ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 5 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.radius = 0.001f; - attributes.color = glm::vec4( 0.8f, 0.9f, 1.0f, 0.5f); - attributes.airFriction = 0.0f; - attributes.jitter = 0.004f; - attributes.bounce = 1.0f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - - attributes.gravity = 0.01f; - attributes.jitter = 0.0f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - - attributes.color = glm::vec4( 0.8f, 0.9f, 1.0f, 0.2f); - attributes.radius = 0.002f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - - attributes.color = glm::vec4( 0.8f, 0.9f, 1.0f, 0.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - - //----------------------------------------- - // flashy - //----------------------------------------- - } else if (mode == RAVE_GLOVE_EFFECTS_MODE_FLASHY) { - - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_SPHERE ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], true ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 0.1 ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.002f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 100.0 ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 12 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.radius = 0.0f; - attributes.color = glm::vec4( 1.0f, 1.0f, 1.0f, 1.0f); - attributes.airFriction = 0.0f; - attributes.jitter = 0.05f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - - attributes.radius = 0.01f; - attributes.color = glm::vec4( 1.0f, 1.0f, 0.0f, 1.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - - attributes.radius = 0.01f; - attributes.color = glm::vec4( 1.0f, 0.0f, 1.0f, 1.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - - attributes.radius = 0.01f; - attributes.color = glm::vec4( 0.0f, 0.0f, 0.0f, 1.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - - //----------------------------------------- - // Bozo sparkler - //----------------------------------------- - } else if (mode == RAVE_GLOVE_EFFECTS_MODE_BOZO_SPARKLER) { - - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_RIBBON ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], false ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 0.2 ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.002f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 100.0 ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 12 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.radius = 0.0f; - attributes.color = glm::vec4( 1.0f, 1.0f, 1.0f, 1.0f); - attributes.airFriction = 0.0f; - attributes.jitter = 0.01f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - - attributes.radius = 0.01f; - attributes.color = glm::vec4( 1.0f, 1.0f, 0.0f, 1.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - - attributes.radius = 0.01f; - attributes.color = glm::vec4( 1.0f, 0.0f, .0f, 1.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - - attributes.radius = 0.0f; - attributes.color = glm::vec4( 0.0f, 0.0f, 1.0f, 0.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - - //----------------------------------------- - // long sparkler - //----------------------------------------- - } else if (mode == RAVE_GLOVE_EFFECTS_MODE_LONG_SPARKLER) { - - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_RIBBON ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], false ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 1.0 ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.002f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 100.0 ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 7 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.color = glm::vec4( 0.3f, 0.3f, 0.3f, 0.4f); - attributes.radius = 0.0f; - attributes.airFriction = 0.0f; - attributes.jitter = 0.0001f; - attributes.bounce = 1.0f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - - attributes.radius = 0.005f; - attributes.color = glm::vec4( 0.0f, 0.5f, 0.5f, 0.8f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - - attributes.radius = 0.007f; - attributes.color = glm::vec4( 0.5f, 0.0f, 0.5f, 0.5f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - - attributes.radius = 0.02f; - attributes.color = glm::vec4( 0.0f, 0.0f, 1.0f, 0.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - - //----------------------------------------- - // bubble snake - //----------------------------------------- - } else if (mode == RAVE_GLOVE_EFFECTS_MODE_SNAKE) { - - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_SPHERE ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], true ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 1.0 ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.002f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 100.0 ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 7 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.radius = 0.001f; - attributes.color = glm::vec4( 0.5f, 1.0f, 0.5f, 1.0f); - attributes.airFriction = 0.01f; - attributes.jitter = 0.0f; - attributes.emitterAttraction = 0.0f; - attributes.tornadoForce = 1.1f; - attributes.neighborAttraction = 1.1f; - attributes.neighborRepulsion = 1.1f; - attributes.bounce = 0.0f; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - - attributes.radius = 0.002f; - attributes.color = glm::vec4( 1.0f, 1.0f, 1.0f, 1.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - - attributes.radius = 0.003f; - attributes.color = glm::vec4( 0.3f, 0.3f, 0.3f, 0.5f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - - attributes.radius = 0.004f; - attributes.color = glm::vec4( 0.3f, 0.3f, 0.3f, 0.0f); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - - //----------------------------------------- - // pulse - //----------------------------------------- - } else if (mode == RAVE_GLOVE_EFFECTS_MODE_PULSE) { - - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_SPHERE ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], true ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 0.0 ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.0f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 30.0 ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 20 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.radius = 0.01f; - attributes.color = glm::vec4( 0.1f, 0.2f, 0.4f, 0.5f); - attributes.modulationAmplitude = 0.9; - attributes.modulationRate = 7.0; - attributes.modulationStyle = COLOR_MODULATION_STYLE_LIGHNTESS_PULSE; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - - //----------------------------------------- - // long sparkler - //----------------------------------------- - } else if (mode == RAVE_GLOVE_EFFECTS_MODE_LONG_SPARKLER) { - - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_SPHERE ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], true ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 0.0 ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.0f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 30.0 ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 20 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.radius = 0.01f; - attributes.color = glm::vec4( 0.5f, 0.4f, 0.3f, 0.5f); - attributes.modulationAmplitude = 0.3; - attributes.modulationRate = 1.0; - attributes.modulationStyle = COLOR_MODULATION_STYLE_LIGHTNESS_WAVE; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - - //----------------------------------------- - // throb - //----------------------------------------- - } else if (mode == RAVE_GLOVE_EFFECTS_MODE_THROB) { - - _raveGloveParticleSystem.setParticleRenderStyle (_raveGloveEmitter[f], PARTICLE_RENDER_STYLE_SPHERE ); - _raveGloveParticleSystem.setShowingEmitterBaseParticle(_raveGloveEmitter[f], true ); - _raveGloveParticleSystem.setEmitterParticleLifespan (_raveGloveEmitter[f], 0.03 ); - _raveGloveParticleSystem.setEmitterThrust (_raveGloveEmitter[f], 0.0f ); - _raveGloveParticleSystem.setEmitterRate (_raveGloveEmitter[f], 30.0 ); - _raveGloveParticleSystem.setEmitterParticleResolution (_raveGloveEmitter[f], 20 ); - - _raveGloveParticleSystem.setParticleAttributesToDefault(&attributes); - - attributes.radius = 0.01f; - attributes.color = glm::vec4( 0.1f, 0.2f, 0.4f, 0.5f); - attributes.modulationAmplitude = 0.5; - attributes.modulationRate = 3.0; - attributes.modulationStyle = COLOR_MODULATION_STYLE_LIGHTNESS_WAVE; - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_0, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_1, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_2, attributes); - _raveGloveParticleSystem.setParticleAttributes(_raveGloveEmitter[f], PARTICLE_LIFESTAGE_3, attributes); - } - } -} diff --git a/interface/src/avatar/Hand.h b/interface/src/avatar/Hand.h index 83d4a7f8a6..d6ec65004d 100755 --- a/interface/src/avatar/Hand.h +++ b/interface/src/avatar/Hand.h @@ -25,12 +25,6 @@ #include "world.h" #include "devices/SerialInterface.h" -enum RaveLightsSetting { - RAVE_LIGHTS_AVATAR = 0, - RAVE_LIGHTS_PARTICLES -}; - - class Avatar; class ProgramObject; @@ -53,13 +47,7 @@ public: void reset(); void simulate(float deltaTime, bool isMine); void render(bool isMine); - void renderRaveGloveStage(); - void setRaveLights(RaveLightsSetting setting); - void setBallColor (glm::vec3 ballColor ) { _ballColor = ballColor; } - void updateRaveGloveParticles(float deltaTime); - void updateRaveGloveEmitters(); - void setRaveGloveEffectsMode(QKeyEvent* event); // getters const glm::vec3& getLeapFingerTipBallPosition (int ball) const { return _leapFingerTipBalls [ball].position;} @@ -69,12 +57,7 @@ private: // disallow copies of the Hand, copy of owning Avatar is disallowed too Hand(const Hand&); Hand& operator= (const Hand&); - - ParticleSystem _raveGloveParticleSystem; - float _raveGloveClock; - bool _raveGloveInitialized; - int _raveGloveEmitter[NUM_FINGERS]; - + int _controllerButtons; /// Button states read from hand-held controllers Avatar* _owningAvatar; @@ -95,8 +78,6 @@ private: void setLeapHands(const std::vector& handPositions, const std::vector& handNormals); - void activateNewRaveGloveMode(); - void renderLeapHands(); void renderLeapFingerTrails(); void calculateGeometry(); diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 833e6a4d4b..51b8b37007 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -499,10 +499,6 @@ static TextRenderer* textRenderer() { void MyAvatar::render(bool forceRenderHead) { - if (Application::getInstance()->getAvatar()->getHand().isRaveGloveActive()) { - _hand.setRaveLights(RAVE_LIGHTS_AVATAR); - } - // render a simple round on the ground projected down from the avatar's position renderDiskShadow(_position, glm::vec3(0.0f, 1.0f, 0.0f), _scale * 0.1f, 0.2f); @@ -562,21 +558,6 @@ void MyAvatar::render(bool forceRenderHead) { } } -void MyAvatar::renderScreenTint(ScreenTintLayer layer) { - - if (layer == SCREEN_TINT_BEFORE_AVATARS) { - if (_hand.isRaveGloveActive()) { - _hand.renderRaveGloveStage(); - } - } - else if (layer == SCREEN_TINT_BEFORE_AVATARS) { - if (_hand.isRaveGloveActive()) { - // Restore the world lighting - Application::getInstance()->setupWorldLight(); - } - } -} - void MyAvatar::saveData(QSettings* settings) { settings->beginGroup("Avatar"); diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 790f76b233..9f440a50bf 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -21,7 +21,6 @@ public: void simulate(float deltaTime, Transmitter* transmitter); void updateFromGyrosAndOrWebcam(bool turnWithHead); void render(bool forceRenderHead); - void renderScreenTint(ScreenTintLayer layer); // setters void setMousePressed(bool mousePressed) { _mousePressed = mousePressed; } diff --git a/libraries/avatars/src/HandData.cpp b/libraries/avatars/src/HandData.cpp index a38e2dee6d..3abaf3c431 100644 --- a/libraries/avatars/src/HandData.cpp +++ b/libraries/avatars/src/HandData.cpp @@ -10,8 +10,6 @@ #include "AvatarData.h" #include -// Glove flags -#define GLOVE_FLAG_RAVE 0x01 // When converting between fixed and float, use this as the radix. const int fingerVectorRadix = 4; @@ -19,10 +17,7 @@ const int fingerVectorRadix = 4; HandData::HandData(AvatarData* owningAvatar) : _basePosition(0.0f, 0.0f, 0.0f), _baseOrientation(0.0f, 0.0f, 0.0f, 1.0f), - _owningAvatarData(owningAvatar), - _isRaveGloveActive(false), - _raveGloveEffectsMode(RAVE_GLOVE_EFFECTS_MODE_THROBBING_COLOR), - _raveGloveEffectsModeChanged(false) + _owningAvatarData(owningAvatar) { // Start with two palms addNewPalm(); @@ -67,13 +62,6 @@ _owningHandData(owningHandData) int HandData::encodeRemoteData(unsigned char* destinationBuffer) { const unsigned char* startPosition = destinationBuffer; - unsigned char gloveFlags = 0; - if (isRaveGloveActive()) - gloveFlags |= GLOVE_FLAG_RAVE; - - *destinationBuffer++ = gloveFlags; - *destinationBuffer++ = getRaveGloveMode(); - unsigned int numHands = 0; for (unsigned int handIndex = 0; handIndex < getNumPalms(); ++handIndex) { PalmData& palm = getPalms()[handIndex]; @@ -120,8 +108,6 @@ int HandData::encodeRemoteData(unsigned char* destinationBuffer) { int HandData::decodeRemoteData(unsigned char* sourceBuffer) { const unsigned char* startPosition = sourceBuffer; - unsigned char gloveFlags = *sourceBuffer++; - char effectsMode = *sourceBuffer++; unsigned int numHands = *sourceBuffer++; for (unsigned int handIndex = 0; handIndex < numHands; ++handIndex) { @@ -165,11 +151,6 @@ int HandData::decodeRemoteData(unsigned char* sourceBuffer) { palm.setActive(false); } - setRaveGloveActive((gloveFlags & GLOVE_FLAG_RAVE) != 0); - if (numHands > 0) { - setRaveGloveMode(effectsMode); - } - // One byte for error checking safety. unsigned char requiredLength = (unsigned char)(sourceBuffer - startPosition); unsigned char checkLength = *sourceBuffer++; @@ -178,13 +159,6 @@ int HandData::decodeRemoteData(unsigned char* sourceBuffer) { return sourceBuffer - startPosition; } -void HandData::setRaveGloveMode(int effectsMode) { - if (effectsMode != _raveGloveEffectsMode) { - _raveGloveEffectsModeChanged = true; - } - _raveGloveEffectsMode = effectsMode; -} - void HandData::setFingerTrailLength(unsigned int length) { for (size_t i = 0; i < getNumPalms(); ++i) { PalmData& palm = getPalms()[i]; diff --git a/libraries/avatars/src/HandData.h b/libraries/avatars/src/HandData.h index 8b43b64ef0..94ad263fbd 100755 --- a/libraries/avatars/src/HandData.h +++ b/libraries/avatars/src/HandData.h @@ -26,22 +26,6 @@ const int NUM_FINGERS = NUM_HANDS * NUM_FINGERS_PER_HAND; const int LEAPID_INVALID = -1; const int SIXENSEID_INVALID = -1; -enum RaveGloveEffectsMode -{ - RAVE_GLOVE_EFFECTS_MODE_NULL = -1, - RAVE_GLOVE_EFFECTS_MODE_THROBBING_COLOR, - RAVE_GLOVE_EFFECTS_MODE_TRAILS, - RAVE_GLOVE_EFFECTS_MODE_FIRE, - RAVE_GLOVE_EFFECTS_MODE_WATER, - RAVE_GLOVE_EFFECTS_MODE_FLASHY, - RAVE_GLOVE_EFFECTS_MODE_BOZO_SPARKLER, - RAVE_GLOVE_EFFECTS_MODE_LONG_SPARKLER, - RAVE_GLOVE_EFFECTS_MODE_SNAKE, - RAVE_GLOVE_EFFECTS_MODE_PULSE, - RAVE_GLOVE_EFFECTS_MODE_THROB, - NUM_RAVE_GLOVE_EFFECTS_MODES -}; - const int BUTTON_1 = 32; const int BUTTON_2 = 64; const int BUTTON_3 = 8; @@ -76,20 +60,12 @@ public: int encodeRemoteData(unsigned char* destinationBuffer); int decodeRemoteData(unsigned char* sourceBuffer); - void setRaveGloveActive(bool active) { _isRaveGloveActive = active; } - void setRaveGloveMode(int effectsMode); - bool isRaveGloveActive() const { return _isRaveGloveActive; } - int getRaveGloveMode() { return _raveGloveEffectsMode; } - friend class AvatarData; protected: glm::vec3 _basePosition; // Hands are placed relative to this glm::quat _baseOrientation; // Hands are placed relative to this AvatarData* _owningAvatarData; std::vector _palms; - bool _isRaveGloveActive; - int _raveGloveEffectsMode; - bool _raveGloveEffectsModeChanged; private: // privatize copy ctor and assignment operator so copies of this object cannot be made HandData(const HandData&); diff --git a/libraries/shared/src/PacketHeaders.cpp b/libraries/shared/src/PacketHeaders.cpp index d48ffdbaf1..aa7705592a 100644 --- a/libraries/shared/src/PacketHeaders.cpp +++ b/libraries/shared/src/PacketHeaders.cpp @@ -20,7 +20,7 @@ PACKET_VERSION versionForPacketType(PACKET_TYPE type) { return 2; case PACKET_TYPE_HEAD_DATA: - return 11; + return 12; case PACKET_TYPE_AVATAR_URLS: return 2;