From 146e9176eb88ebcf40313bc6d767265d1e0fd241 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 20 Aug 2013 13:06:30 -0700 Subject: [PATCH 1/2] switch to one channel from PortAudio to resolve USB error --- interface/src/Audio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index 449ec55a16..0d4b268fcc 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -407,7 +407,7 @@ Audio::Audio(Oscilloscope* scope, int16_t initialJitterBufferSamples) : return; } - inputParameters.channelCount = 2; // Stereo input + inputParameters.channelCount = 1; // Stereo input inputParameters.sampleFormat = (paInt16 | paNonInterleaved); inputParameters.suggestedLatency = Pa_GetDeviceInfo(inputParameters.device)->defaultLowInputLatency; inputParameters.hostApiSpecificStreamInfo = NULL; From 22a2603eaae05c01c3f5aa88f181c1727032959b Mon Sep 17 00:00:00 2001 From: atlante45 Date: Tue, 20 Aug 2013 15:28:08 -0700 Subject: [PATCH 2/2] Several VoxelSystems can have different view frustum --- interface/src/VoxelSystem.cpp | 30 +++++++++++++++--------------- interface/src/VoxelSystem.h | 3 +++ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/interface/src/VoxelSystem.cpp b/interface/src/VoxelSystem.cpp index 974595216b..59f55cf4b6 100644 --- a/interface/src/VoxelSystem.cpp +++ b/interface/src/VoxelSystem.cpp @@ -65,6 +65,8 @@ VoxelSystem::VoxelSystem(float treeScale, int maxVoxels) : _falseColorizeBySource = false; _dataSourceID = UNKNOWN_NODE_ID; _voxelServerCount = 0; + + _viewFrustum = Application::getInstance()->getViewFrustum(); } void VoxelSystem::nodeDeleted(VoxelNode* node) { @@ -394,7 +396,7 @@ int VoxelSystem::newTreeToArrays(VoxelNode* node) { int voxelsUpdated = 0; bool shouldRender = false; // assume we don't need to render it // if it's colored, we might need to render it! - shouldRender = node->calculateShouldRender(Application::getInstance()->getViewFrustum()); + shouldRender = node->calculateShouldRender(_viewFrustum); node->setShouldRender(shouldRender); // let children figure out their renderness @@ -813,10 +815,8 @@ bool VoxelSystem::falseColorizeInViewOperation(VoxelNode* node, void* extraData) } void VoxelSystem::falseColorizeInView() { - ViewFrustum* viewFrustum = Application::getInstance()->getViewFrustum(); - _nodeCount = 0; - _tree->recurseTreeWithOperation(falseColorizeInViewOperation,(void*)viewFrustum); + _tree->recurseTreeWithOperation(falseColorizeInViewOperation,(void*)_viewFrustum); qDebug("setting in view false color for %d nodes\n", _nodeCount); _tree->setDirtyBit(); setupNewVoxelsForDrawing(); @@ -942,15 +942,13 @@ bool VoxelSystem::getDistanceFromViewRangeOperation(VoxelNode* node, void* extra } void VoxelSystem::falseColorizeDistanceFromView() { - ViewFrustum* viewFrustum = Application::getInstance()->getViewFrustum(); - _nodeCount = 0; _maxDistance = 0.0; _minDistance = FLT_MAX; - _tree->recurseTreeWithOperation(getDistanceFromViewRangeOperation, (void*) viewFrustum); + _tree->recurseTreeWithOperation(getDistanceFromViewRangeOperation, (void*) _viewFrustum); qDebug("determining distance range for %d nodes\n", _nodeCount); _nodeCount = 0; - _tree->recurseTreeWithOperation(falseColorizeDistanceFromViewOperation, (void*) viewFrustum); + _tree->recurseTreeWithOperation(falseColorizeDistanceFromViewOperation, (void*) _viewFrustum); qDebug("setting in distance false color for %d nodes\n", _nodeCount); _tree->setDirtyBit(); setupNewVoxelsForDrawing(); @@ -960,6 +958,7 @@ void VoxelSystem::falseColorizeDistanceFromView() { class removeOutOfViewArgs { public: VoxelSystem* thisVoxelSystem; + ViewFrustum* thisViewFrustum; VoxelNodeBag dontRecurseBag; unsigned long nodesScanned; unsigned long nodesRemoved; @@ -969,6 +968,7 @@ public: removeOutOfViewArgs(VoxelSystem* voxelSystem) : thisVoxelSystem(voxelSystem), + thisViewFrustum(voxelSystem->getViewFrustum()), dontRecurseBag(), nodesScanned(0), nodesRemoved(0), @@ -997,7 +997,7 @@ bool VoxelSystem::removeOutOfViewOperation(VoxelNode* node, void* extraData) { for (int i = 0; i < NUMBER_OF_CHILDREN; i++) { VoxelNode* childNode = node->getChildAtIndex(i); if (childNode) { - ViewFrustum::location inFrustum = childNode->inFrustum(*Application::getInstance()->getViewFrustum()); + ViewFrustum::location inFrustum = childNode->inFrustum(*args->thisViewFrustum); switch (inFrustum) { case ViewFrustum::OUTSIDE: { args->nodesOutside++; @@ -1031,9 +1031,9 @@ bool VoxelSystem::isViewChanging() { bool result = false; // assume the best // If our viewFrustum has changed since our _lastKnowViewFrustum - if (!_lastKnowViewFrustum.matches(Application::getInstance()->getViewFrustum())) { + if (!_lastKnowViewFrustum.matches(_viewFrustum)) { result = true; - _lastKnowViewFrustum = *Application::getInstance()->getViewFrustum(); // save last known + _lastKnowViewFrustum = *_viewFrustum; // save last known } return result; } @@ -1047,9 +1047,9 @@ bool VoxelSystem::hasViewChanged() { } // If our viewFrustum has changed since our _lastKnowViewFrustum - if (!_lastStableViewFrustum.matches(Application::getInstance()->getViewFrustum())) { + if (!_lastStableViewFrustum.matches(_viewFrustum)) { result = true; - _lastStableViewFrustum = *Application::getInstance()->getViewFrustum(); // save last stable + _lastStableViewFrustum = *_viewFrustum; // save last stable } return result; } @@ -1403,7 +1403,7 @@ void VoxelSystem::falseColorizeOccluded() { myCoverageMap.erase(); FalseColorizeOccludedArgs args; - args.viewFrustum = Application::getInstance()->getViewFrustum(); + args.viewFrustum = _viewFrustum; args.map = &myCoverageMap; args.totalVoxels = 0; args.coloredVoxels = 0; @@ -1525,7 +1525,7 @@ void VoxelSystem::falseColorizeOccludedV2() { VoxelProjectedPolygon::intersects_calls = 0; FalseColorizeOccludedArgs args; - args.viewFrustum = Application::getInstance()->getViewFrustum(); + args.viewFrustum = _viewFrustum; args.mapV2 = &myCoverageMapV2; args.totalVoxels = 0; args.coloredVoxels = 0; diff --git a/interface/src/VoxelSystem.h b/interface/src/VoxelSystem.h index c55bd552db..240d12f0f1 100644 --- a/interface/src/VoxelSystem.h +++ b/interface/src/VoxelSystem.h @@ -43,6 +43,8 @@ public: void simulate(float deltaTime) { }; void render(bool texture); + ViewFrustum* getViewFrustum() const {return _viewFrustum;} + void setViewFrustum(ViewFrustum* viewFrustum) {_viewFrustum = viewFrustum;} unsigned long getVoxelsUpdated() const {return _voxelsUpdated;}; unsigned long getVoxelsRendered() const {return _voxelsInReadArrays;}; @@ -182,6 +184,7 @@ private: ViewFrustum _lastKnowViewFrustum; ViewFrustum _lastStableViewFrustum; + ViewFrustum* _viewFrustum; int newTreeToArrays(VoxelNode *currentNode); void cleanupRemovedVoxels();