From 71d5f3d2d886c959864cb88b9e7330c65c13cb1b Mon Sep 17 00:00:00 2001 From: LionTurtle Date: Thu, 12 Sep 2013 17:38:16 -0700 Subject: [PATCH 1/2] Fix for copy/cut/paste single voxel leaves. --- libraries/voxels/src/VoxelTree.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/libraries/voxels/src/VoxelTree.cpp b/libraries/voxels/src/VoxelTree.cpp index 0880af33ee..eeee12e343 100644 --- a/libraries/voxels/src/VoxelTree.cpp +++ b/libraries/voxels/src/VoxelTree.cpp @@ -618,6 +618,7 @@ void VoxelTree::printTreeForDebugging(VoxelNode *startNode) { void VoxelTree::reaverageVoxelColors(VoxelNode *startNode) { // if our tree is a reaveraging tree, then we do this, otherwise we don't do anything if (_shouldReaverage) { + qDebug("Trying to dechunkify\n"); bool hasChildren = false; for (int i = 0; i < NUMBER_OF_CHILDREN; i++) { @@ -635,6 +636,12 @@ void VoxelTree::reaverageVoxelColors(VoxelNode *startNode) { // this is also a good time to recalculateSubTreeNodeCount() startNode->recalculateSubTreeNodeCount(); + + if (startNode->isLeaf()) { + qDebug("dechunkified\n"); + } else { + qDebug("not dechunkified\n"); + } } } @@ -1772,6 +1779,14 @@ void VoxelTree::copySubTreeIntoNewTree(VoxelNode* startNode, VoxelTree* destinat ReadBitstreamToTreeParams args(WANT_COLOR, NO_EXISTS_BITS); destinationTree->readBitstreamToTree(&outputBuffer[0], bytesWritten, args); } + + VoxelNode* destinationStartNode; + if (rebaseToRoot) { + destinationStartNode = destinationTree->rootNode; + } else { + destinationStartNode = nodeForOctalCode(destinationTree->rootNode, startNode->getOctalCode(), NULL); + } + destinationStartNode->setColor(startNode->getColor()); } void VoxelTree::copyFromTreeIntoSubTree(VoxelTree* sourceTree, VoxelNode* destinationNode) { @@ -2041,13 +2056,6 @@ void VoxelTree::nudgeSubTree(VoxelNode* nodeToNudge, const glm::vec3& nudgeAmoun return; } - // get octal code of this node - unsigned char* octalCode = nodeToNudge->getOctalCode(); - - // get voxel position/size - VoxelPositionSize ancestorDetails; - voxelDetailsForCode(octalCode, ancestorDetails); - NodeChunkArgs args; args.thisVoxelTree = this; args.nudgeVec = nudgeAmount; From 99db8491efc61027a637b23d474db0e144112c45 Mon Sep 17 00:00:00 2001 From: LionTurtle Date: Thu, 12 Sep 2013 17:41:02 -0700 Subject: [PATCH 2/2] Get rid of qDebug statements in VoxelTree.cpp. --- libraries/voxels/src/VoxelTree.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/libraries/voxels/src/VoxelTree.cpp b/libraries/voxels/src/VoxelTree.cpp index eeee12e343..c3d8f78240 100644 --- a/libraries/voxels/src/VoxelTree.cpp +++ b/libraries/voxels/src/VoxelTree.cpp @@ -618,7 +618,6 @@ void VoxelTree::printTreeForDebugging(VoxelNode *startNode) { void VoxelTree::reaverageVoxelColors(VoxelNode *startNode) { // if our tree is a reaveraging tree, then we do this, otherwise we don't do anything if (_shouldReaverage) { - qDebug("Trying to dechunkify\n"); bool hasChildren = false; for (int i = 0; i < NUMBER_OF_CHILDREN; i++) { @@ -636,12 +635,6 @@ void VoxelTree::reaverageVoxelColors(VoxelNode *startNode) { // this is also a good time to recalculateSubTreeNodeCount() startNode->recalculateSubTreeNodeCount(); - - if (startNode->isLeaf()) { - qDebug("dechunkified\n"); - } else { - qDebug("not dechunkified\n"); - } } }