diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 46be485fc5..fbf383cc6f 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -4094,11 +4094,13 @@ void Application::nodeKilled(Node* node) { rootDetails.x, rootDetails.y, rootDetails.z, rootDetails.s); // Add the jurisditionDetails object to the list of "fade outs" - VoxelFade fade(VoxelFade::FADE_OUT, NODE_KILLED_RED, NODE_KILLED_GREEN, NODE_KILLED_BLUE); - fade.voxelDetails = rootDetails; - const float slightly_smaller = 0.99; - fade.voxelDetails.s = fade.voxelDetails.s * slightly_smaller; - _voxelFades.push_back(fade); + if (!Menu::getInstance()->isOptionChecked(MenuOption::DontFadeOnVoxelServerChanges)) { + VoxelFade fade(VoxelFade::FADE_OUT, NODE_KILLED_RED, NODE_KILLED_GREEN, NODE_KILLED_BLUE); + fade.voxelDetails = rootDetails; + const float slightly_smaller = 0.99; + fade.voxelDetails.s = fade.voxelDetails.s * slightly_smaller; + _voxelFades.push_back(fade); + } } } else if (node->getLinkedData() == _lookatTargetAvatar) { _lookatTargetAvatar = NULL; @@ -4127,11 +4129,13 @@ int Application::parseVoxelStats(unsigned char* messageData, ssize_t messageLeng rootDetails.x, rootDetails.y, rootDetails.z, rootDetails.s); // Add the jurisditionDetails object to the list of "fade outs" - VoxelFade fade(VoxelFade::FADE_OUT, NODE_ADDED_RED, NODE_ADDED_GREEN, NODE_ADDED_BLUE); - fade.voxelDetails = rootDetails; - const float slightly_smaller = 0.99; - fade.voxelDetails.s = fade.voxelDetails.s * slightly_smaller; - _voxelFades.push_back(fade); + if (!Menu::getInstance()->isOptionChecked(MenuOption::DontFadeOnVoxelServerChanges)) { + VoxelFade fade(VoxelFade::FADE_OUT, NODE_ADDED_RED, NODE_ADDED_GREEN, NODE_ADDED_BLUE); + fade.voxelDetails = rootDetails; + const float slightly_smaller = 0.99; + fade.voxelDetails.s = fade.voxelDetails.s * slightly_smaller; + _voxelFades.push_back(fade); + } } // store jurisdiction details for later use // This is bit of fiddling is because JurisdictionMap assumes it is the owner of the values used to construct it diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 92c6bbf63b..3d1b7b7bf1 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -283,6 +283,7 @@ Menu::Menu() : addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::VoxelTextures); addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::AmbientOcclusion); + addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DontFadeOnVoxelServerChanges); addActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::LodTools, Qt::SHIFT | Qt::Key_L, this, SLOT(lodTools())); QMenu* cullingOptionsMenu = voxelOptionsMenu->addMenu("Culling Options"); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 987d7ff452..30ef055447 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -165,6 +165,7 @@ namespace MenuOption { const QString EchoAudio = "Echo Audio"; const QString ExportVoxels = "Export Voxels"; const QString ExtraDebugging = "Extra Debugging"; + const QString DontFadeOnVoxelServerChanges = "Don't Fade In/Out on Voxel Server Changes"; const QString HeadMouse = "Head Mouse"; const QString FaceMode = "Cycle Face Mode"; const QString FaceshiftTCP = "Faceshift (TCP)"; diff --git a/interface/src/VoxelSystem.cpp b/interface/src/VoxelSystem.cpp index 1219548b4d..62419565c6 100644 --- a/interface/src/VoxelSystem.cpp +++ b/interface/src/VoxelSystem.cpp @@ -2645,23 +2645,8 @@ bool VoxelSystem::killSourceVoxelsOperation(VoxelNode* node, void* extraData) { void VoxelSystem::nodeKilled(Node* node) { if (node->getType() == NODE_TYPE_VOXEL_SERVER) { _voxelServerCount--; - QUuid nodeUUID = node->getUUID(); - qDebug("VoxelSystem... voxel server %s removed...\n", nodeUUID.toString().toLocal8Bit().constData()); - - if (_voxelServerCount > 0) { - // Kill any voxels from the local tree that match this nodeID - // commenting out for removal of 16 bit node IDs - lockTree(); - _tree->recurseTreeWithOperation(killSourceVoxelsOperation, &nodeUUID); - unlockTree(); - _tree->setDirtyBit(); - setupNewVoxelsForDrawing(); - } else { - // Last server, take the easy way and kill all the local voxels! - killLocalVoxels(); - } } }