Showing the changes to interface/src/VoxelSystem.cpp (1 of 2 files). Show all
Unified · Split
| @@ -65,6 +65,8 @@ VoxelSystem::VoxelSystem(float treeScale, int maxVoxels) : · 64 unmodified lines | ||
| 65 | 65 | _falseColorizeBySource = false; |
| 66 | 66 | _dataSourceID = UNKNOWN_NODE_ID; |
| 67 | 67 | _voxelServerCount = 0; |
| 68 | + | |
| 69 | + _viewFrustum = Application::getInstance()->getViewFrustum(); | |
| 68 | 70 | } |
| 69 | 71 | |
| 70 | 72 | void VoxelSystem::nodeDeleted(VoxelNode* node) { |
| @@ -394,7 +396,7 @@ int VoxelSystem::newTreeToArrays(VoxelNode* node) { · 323 unmodified lines | ||
| 394 | 396 | int voxelsUpdated = 0; |
| 395 | 397 | bool shouldRender = false; // assume we don't need to render it |
| 396 | 398 | // if it's colored, we might need to render it! |
| 397 | − shouldRender = node->calculateShouldRender(Application::getInstance()->getViewFrustum()); | |
| 399 | + shouldRender = node->calculateShouldRender(_viewFrustum); | |
| 398 | 400 | |
| 399 | 401 | node->setShouldRender(shouldRender); |
| 400 | 402 | // let children figure out their renderness |
| @@ -813,10 +815,8 @@ bool VoxelSystem::falseColorizeInViewOperation(VoxelNode* node, void* extraData) · 412 unmodified lines | ||
| 813 | 815 | } |
| 814 | 816 | |
| 815 | 817 | void VoxelSystem::falseColorizeInView() { |
| 816 | − ViewFrustum* viewFrustum = Application::getInstance()->getViewFrustum(); | |
| 817 | − | |
| 818 | 818 | _nodeCount = 0; |
| 819 | − _tree->recurseTreeWithOperation(falseColorizeInViewOperation,(void*)viewFrustum); | |
| 819 | + _tree->recurseTreeWithOperation(falseColorizeInViewOperation,(void*)_viewFrustum); | |
| 820 | 820 | qDebug("setting in view false color for %d nodes\n", _nodeCount); |
| 821 | 821 | _tree->setDirtyBit(); |
| 822 | 822 | setupNewVoxelsForDrawing(); |
| @@ -942,15 +942,13 @@ bool VoxelSystem::getDistanceFromViewRangeOperation(VoxelNode* node, void* extra · 119 unmodified lines | ||
| 942 | 942 | } |
| 943 | 943 | |
| 944 | 944 | void VoxelSystem::falseColorizeDistanceFromView() { |
| 945 | − ViewFrustum* viewFrustum = Application::getInstance()->getViewFrustum(); | |
| 946 | − | |
| 947 | 945 | _nodeCount = 0; |
| 948 | 946 | _maxDistance = 0.0; |
| 949 | 947 | _minDistance = FLT_MAX; |
| 950 | − _tree->recurseTreeWithOperation(getDistanceFromViewRangeOperation, (void*) viewFrustum); | |
| 948 | + _tree->recurseTreeWithOperation(getDistanceFromViewRangeOperation, (void*) _viewFrustum); | |
| 951 | 949 | qDebug("determining distance range for %d nodes\n", _nodeCount); |
| 952 | 950 | _nodeCount = 0; |
| 953 | − _tree->recurseTreeWithOperation(falseColorizeDistanceFromViewOperation, (void*) viewFrustum); | |
| 951 | + _tree->recurseTreeWithOperation(falseColorizeDistanceFromViewOperation, (void*) _viewFrustum); | |
| 954 | 952 | qDebug("setting in distance false color for %d nodes\n", _nodeCount); |
| 955 | 953 | _tree->setDirtyBit(); |
| 956 | 954 | setupNewVoxelsForDrawing(); |
| @@ -960,6 +958,7 @@ void VoxelSystem::falseColorizeDistanceFromView() { · 3 unmodified lines | ||
| 960 | 958 | class removeOutOfViewArgs { |
| 961 | 959 | public: |
| 962 | 960 | VoxelSystem* thisVoxelSystem; |
| 961 | + ViewFrustum* thisViewFrustum; | |
| 963 | 962 | VoxelNodeBag dontRecurseBag; |
| 964 | 963 | unsigned long nodesScanned; |
| 965 | 964 | unsigned long nodesRemoved; |
| @@ -969,6 +968,7 @@ public: · 3 unmodified lines | ||
| 969 | 968 | |
| 970 | 969 | removeOutOfViewArgs(VoxelSystem* voxelSystem) : |
| 971 | 970 | thisVoxelSystem(voxelSystem), |
| 971 | + thisViewFrustum(voxelSystem->getViewFrustum()), | |
| 972 | 972 | dontRecurseBag(), |
| 973 | 973 | nodesScanned(0), |
| 974 | 974 | nodesRemoved(0), |
| @@ -997,7 +997,7 @@ bool VoxelSystem::removeOutOfViewOperation(VoxelNode* node, void* extraData) { · 22 unmodified lines | ||
| 997 | 997 | for (int i = 0; i < NUMBER_OF_CHILDREN; i++) { |
| 998 | 998 | VoxelNode* childNode = node->getChildAtIndex(i); |
| 999 | 999 | if (childNode) { |
| 1000 | − ViewFrustum::location inFrustum = childNode->inFrustum(*Application::getInstance()->getViewFrustum()); | |
| 1000 | + ViewFrustum::location inFrustum = childNode->inFrustum(*args->thisViewFrustum); | |
| 1001 | 1001 | switch (inFrustum) { |
| 1002 | 1002 | case ViewFrustum::OUTSIDE: { |
| 1003 | 1003 | args->nodesOutside++; |
| @@ -1031,9 +1031,9 @@ bool VoxelSystem::isViewChanging() { · 27 unmodified lines | ||
| 1031 | 1031 | bool result = false; // assume the best |
| 1032 | 1032 | |
| 1033 | 1033 | // If our viewFrustum has changed since our _lastKnowViewFrustum |
| 1034 | − if (!_lastKnowViewFrustum.matches(Application::getInstance()->getViewFrustum())) { | |
| 1034 | + if (!_lastKnowViewFrustum.matches(_viewFrustum)) { | |
| 1035 | 1035 | result = true; |
| 1036 | − _lastKnowViewFrustum = *Application::getInstance()->getViewFrustum(); // save last known | |
| 1036 | + _lastKnowViewFrustum = *_viewFrustum; // save last known | |
| 1037 | 1037 | } |
| 1038 | 1038 | return result; |
| 1039 | 1039 | } |
| @@ -1047,9 +1047,9 @@ bool VoxelSystem::hasViewChanged() { · 7 unmodified lines | ||
| 1047 | 1047 | } |
| 1048 | 1048 | |
| 1049 | 1049 | // If our viewFrustum has changed since our _lastKnowViewFrustum |
| 1050 | − if (!_lastStableViewFrustum.matches(Application::getInstance()->getViewFrustum())) { | |
| 1050 | + if (!_lastStableViewFrustum.matches(_viewFrustum)) { | |
| 1051 | 1051 | result = true; |
| 1052 | − _lastStableViewFrustum = *Application::getInstance()->getViewFrustum(); // save last stable | |
| 1052 | + _lastStableViewFrustum = *_viewFrustum; // save last stable | |
| 1053 | 1053 | } |
| 1054 | 1054 | return result; |
| 1055 | 1055 | } |
| @@ -1403,7 +1403,7 @@ void VoxelSystem::falseColorizeOccluded() { · 347 unmodified lines | ||
| 1403 | 1403 | myCoverageMap.erase(); |
| 1404 | 1404 | |
| 1405 | 1405 | FalseColorizeOccludedArgs args; |
| 1406 | − args.viewFrustum = Application::getInstance()->getViewFrustum(); | |
| 1406 | + args.viewFrustum = _viewFrustum; | |
| 1407 | 1407 | args.map = &myCoverageMap; |
| 1408 | 1408 | args.totalVoxels = 0; |
| 1409 | 1409 | args.coloredVoxels = 0; |
| @@ -1525,7 +1525,7 @@ void VoxelSystem::falseColorizeOccludedV2() { · 115 unmodified lines | ||
| 1525 | 1525 | VoxelProjectedPolygon::intersects_calls = 0; |
| 1526 | 1526 | |
| 1527 | 1527 | FalseColorizeOccludedArgs args; |
| 1528 | − args.viewFrustum = Application::getInstance()->getViewFrustum(); | |
| 1528 | + args.viewFrustum = _viewFrustum; | |
| 1529 | 1529 | args.mapV2 = &myCoverageMapV2; |
| 1530 | 1530 | args.totalVoxels = 0; |
| 1531 | 1531 | args.coloredVoxels = 0; |