History

testing of new searchForColoredNodes()

ZappoMan committed 13 years ago

Commit 91f6aaa1 parent e1defb81 file · +67 −19Browse files

Showing the changes to interface/src/VoxelSystem.cpp (1 of 1 file). Show all

Unified · Split

interface/src/VoxelSystem.cpp+67−19
@@ -705,40 +705,88 @@ void VoxelSystem::falseColorizeDistanceFromView(ViewFrustum* viewFrustum) { · 704 unmodified lines
705 705
706 706
707 printf("--------- DEBUG TESTING ------------\n");707 printf("--------- DEBUG TESTING ------------\n");
708 unsigned char* lastOctalCode = tree->rootNode->octalCode;
709 //const int MAX_VOXEL_PACKET_SIZE=13; // test tight fit...708 //const int MAX_VOXEL_PACKET_SIZE=13; // test tight fit...
710 unsigned char* fullOutputBuffer = new unsigned char[MAX_VOXEL_PACKET_SIZE];709 unsigned char* tempOutputBuffer = new unsigned char[MAX_VOXEL_PACKET_SIZE];
711 unsigned char* outputBuffer = fullOutputBuffer;710 unsigned char* finalOutputBuffer = new unsigned char[MAX_VOXEL_PACKET_SIZE];
712 bool startedWriting = false;711 unsigned char* finalOutputBufferAt = finalOutputBuffer;
712 int availableInFinal = MAX_VOXEL_PACKET_SIZE;
713 int bytesWritten = 0;713 int bytesWritten = 0;
714 int totalBytesWritten = 0;
715 int totalPackets = 0;
714 716
715 VoxelNodeBag bagOfTrees;717 VoxelNodeBag bagOfTrees;
716 718
717 bytesWritten = tree->encodeTreeBitstream(tree->rootNode, *viewFrustum, outputBuffer, MAX_VOXEL_PACKET_SIZE, bagOfTrees);719 // stick a "V" in the finalOutputBuffer
720 finalOutputBuffer[0] = 'V';
721 finalOutputBufferAt++;
722 availableInFinal = MAX_VOXEL_PACKET_SIZE-1;
718 723
719 printf("--------- initial results ---- bytesWritten=%d ------------\n",bytesWritten);724 //bytesWritten = tree->encodeTreeBitstream(tree->rootNode, *viewFrustum, outputBuffer, MAX_VOXEL_PACKET_SIZE, bagOfTrees);
720 outputBufferBits(fullOutputBuffer, bytesWritten, true);725 //totalBytesWritten += bytesWritten;
721 printf("--------- DONE initial results ------------\n");726 //printf("--------- initial results ---- bytesWritten=%d ------------\n",bytesWritten);
727 //outputBufferBits(finalOutputBuffer, bytesWritten, true);
728 //printf("--------- DONE initial results ------------\n");
729
730 printf("--------- searchForColoredNodes() ------------\n");
731 tree->searchForColoredNodes(tree->rootNode, *viewFrustum, bagOfTrees);
732 printf("--------- DONE searchForColoredNodes() ------------\n");
722 733
723 printf("--------- extra trees ------------\n");734 printf("--------- bag of trees ------------\n");
724 printf("bagOfTrees.count()=%d\n",bagOfTrees.count());735 printf("bagOfTrees.count()=%d\n",bagOfTrees.count());
725 736
726 int countOfExtra = 0;737 int countOfTrees = 0;
738 bool finalOutputBufferWaiting = false;
727 while (!bagOfTrees.isEmpty()) {739 while (!bagOfTrees.isEmpty()) {
728 countOfExtra++;740 countOfTrees++;
729 VoxelNode* extraTree = bagOfTrees.extract();741 VoxelNode* extraTree = bagOfTrees.extract();
730 printf("processing countOfExtra=%d\n", countOfExtra);742 printf("processing countOfTrees=%d\n", countOfTrees);
731 743
732 bytesWritten = tree->encodeTreeBitstream(extraTree, *viewFrustum, outputBuffer, MAX_VOXEL_PACKET_SIZE, bagOfTrees);744 // Only let this guy create at largest packets equal to the amount of space we have left in our final???
745 // Or let it create the largest possible size (minus 1 for the "V")
746 bytesWritten = tree->encodeTreeBitstream(extraTree, *viewFrustum, tempOutputBuffer, MAX_VOXEL_PACKET_SIZE-1, bagOfTrees);
733 747
734 748 printf("this tree size=%d\n", bytesWritten);
735 printf("--------- extra results ---- bytesWritten=%d ------------\n",bytesWritten);
736 outputBufferBits(fullOutputBuffer, bytesWritten, true);
737 printf("--------- DONE extra results ------------\n");
738 749
750 // if we have room in our final packet, add this buffer to the final packet
751 if (availableInFinal >= bytesWritten) {
752 memcpy(finalOutputBufferAt, tempOutputBuffer, bytesWritten);
753 availableInFinal -= bytesWritten;
754 finalOutputBufferAt += bytesWritten;
755 finalOutputBufferWaiting = true;
756 } else {
757 // otherwise "send" the packet!
758 int sizeOfFinal = MAX_VOXEL_PACKET_SIZE - availableInFinal;
759
760 totalBytesWritten += sizeOfFinal;
761 totalPackets++;
762 printf("---- voxel packet ---- sizeOfFinal=%d totalPackets=%d ----\n",sizeOfFinal,totalPackets);
763 //outputBufferBits(finalOutputBuffer, sizeOfFinal, true);
764 printf("---- DONE voxel packet ------------\n");
765
766 // reset our finalOutputBuffer (keep the 'V')
767 finalOutputBufferAt = &finalOutputBuffer[1];
768 availableInFinal = MAX_VOXEL_PACKET_SIZE - 1;
769 finalOutputBufferWaiting = false;
770
771 // we also need to stick the last created packet in here!!
772 memcpy(finalOutputBufferAt, tempOutputBuffer, bytesWritten);
773 availableInFinal -= bytesWritten;
774 finalOutputBufferAt += bytesWritten;
775 finalOutputBufferWaiting = true;
776 }
739 }777 }
740 778
779 if (finalOutputBufferWaiting) {
780 // otherwise "send" the packet!
781 int sizeOfFinal = MAX_VOXEL_PACKET_SIZE - availableInFinal;
782
783 totalBytesWritten += sizeOfFinal;
784 totalPackets++;
785 printf("---- voxel packet ---- sizeOfFinal=%d totalPackets=%d ----\n",sizeOfFinal,totalPackets);
786 //outputBufferBits(finalOutputBuffer, sizeOfFinal, true);
787 printf("---- DONE voxel packet ------------\n");
788 }
741 789
742 790 printf("--- DONE DEBUG TESTING --- countOfTrees=%d totalBytesWritten=%d totalPackets=%d ------\n",
743 printf("--------- DONE DEBUG TESTING ------------\n");791 countOfTrees, totalBytesWritten,totalPackets);
744}792}