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